February 21, 2006

Design by contract for Ruby

Here's a nice little module Brian and I hacked together a few weeks ago. It adds basic design by contract capabilities to classes with a fairly clean syntax (yay for Ruby's flexibility!)

Take a look for yourself:

class Foo
   include DesignByContract

   pre(:sqrt, "value must be >= 0") { |v| v >= 0 }

   pre("divisor must be != 0") { |dividend, divisor| divisor != 0 }
   post { |result, a, b| a - b * result < 1e-3 }
   def div(dividend, divisor)
      dividend / divisor
   end

   def sqrt(value)
      Math.sqrt value
   end

   post(:sqrt, "error is greater than expected") { |result, value|
         result * result - value < 1e-3
   }
end


When the DesignByContract module is included in a class, the pre and post methods become available. The parameters to these methods are a symbol representing the method to add the pre or post condition to, the message to print if the condition fails and a block that implements the condition.

The method name and message are optional, though. If the method name is missing, the condition will applied to the first method definition following the pre/post declaration. Note that if the method name is present, the condition can be defined anywhere in the class definition, as shown in the example above.

The condition block receives all the arguments passed to the method it applies to. They must return a boolean value indicating whether the condition succeeded. A minor difference between pre and post blocks is that the post block receives the result returned by the method as the first argument. This makes it possible to validate the results against the inputs such as in:

post { |result, dividend, divisor| dividend - divisor * result < 1e-3 }


Get it here!

How it works


In a nutshell, the pre and post methods intercept the existing method using the technique I described a few weeks ago (i.e., no poluting the class' namespace with aliased methods). The new methods test the provided condition before or after delegating the call to the original method and raise an exception if the condition fails.

There is a small caveat, though. If pre/post are called before the method is first created, it cannot be intercepted. To get around this the module uses an alternative trick. Whenever the module is included, it hooks into the method_added callback of class it's included into. If pre/post are called and the corresponding method does not exist, the interception is scheduled until the method is added.

Labels:

44 Comments:

Blogger Ian Monroe said...

I used this code for a debugMethod type of function (outputs the name of the function around its call, and the time it took)
http://websvn.kde.org/trunk/extragear/multimedia/amarok/src/scripts/ruby_debug/debug.rb?rev=530194&view=auto

Just double checking that its OK. And to just share back. :)

Ian Monroe

April 15, 2006 11:12 AM  
Blogger Martin said...

Hey Ian,
It's good to hear somebody found this code helpful. And yeah, feel free to use it however you like.

April 15, 2006 11:31 AM  
Blogger Martin said...

BTW, I just made the license for that code explicit. I'm making it available under the MIT license. Let me know if that's not suitable for your use and I'll change it.

April 15, 2006 11:39 AM  
Blogger David Pollak said...

This is most excellent. I've linked to it with a rant about weakly typed langages. Thanks for excellent code.

April 18, 2006 3:37 PM  
Blogger crab said...

Very good! But I noticed that the pre/post invocation order is not guaranteed.

June 01, 2006 6:31 AM  
Blogger bparanj said...

where is the invariant?

July 05, 2006 8:57 PM  
Blogger Erik Allik said...

Is there a way to implement DbC in Ruby with access to instance variables in the pre and post checks? Right now you can't do

class Foo
def initialize; @bar = 0; end

post '@bar is value', do |ret, value|
@bar == value
end
def bar=(value)
@bar = value
end
end

August 18, 2006 11:13 AM  
Blogger Martin said...

Erik,

I just uploaded a new version that fixes that issue.

Get it here: http://utils.ning.com/ruby/dbc.rb

August 19, 2006 6:43 PM  
Blogger osja said...

One may wish to not enforce DBC in a deployed version, e.g. for performance reasons, but not want to modify the code. I think this can be easily done by reducing the distributed version of dbc.rb to the following.

module DesignByContract
private
def self.included(mod)
class << mod
def pre(method_name = nil, message = nil, &condition)
end

def post(method_name = nil, message = nil, &condition)
end
end
end
end

September 12, 2006 7:05 AM  
Blogger Tacit said...

Thanks for this. It looks like a very clean, natural implementation.
This doesn't seem to work for private methods. Nothing happens at all when i put a pre in front of a private.
I'd like to use this to state contracts between internal private methods as well as for public interfaces. How do i do that?

Ditto the comment about disabling it for release code.

October 08, 2006 5:50 PM  
Blogger legionnaired said...

This is a great module for ruby code, I think I want to add some functionality to a rails addon for rails developers, to give controllers, models, and views some basic requires/ensures capability. There'll probably be a tool as well that'll allow you to generate an app-specific cheat sheet of what each component makes use of... Would it be possible for me to commit some stuff to rdbc?

March 11, 2008 12:25 PM  
Blogger bestonline323 said...

That's a helpful code, thanks.

------------------------------------------
Interior Design Furniture Scotland

June 16, 2008 12:59 PM  
Blogger nasha said...

Why was there no follow on bankruptcy then? The bailout of AIG FP went to (wow power leveling) hedge funds that bound credit swaps on Lehman failing or others betting on rating (wow power leveling) declines. AIG has drained over 100 billion from the government. Which had to go to (wow power leveling) those who bet on failures and downgrades. Many of whom (power leveling)were hedge funds. I-banks that had offsetting swaps needed the money from the AIG bailout or they would have been caught. Its an (wow powerleveling) insiders game and it takes just a little bit too much time for most people to think (wow gold) through where the AIG 100 billion bailout money went to, hedge funds and players, many of whom hire from the top ranks of DOJ, Fed, Treasury, etc. ZHANG XIAO CHEN

April 19, 2009 9:55 PM  
Blogger wholesale jewelry said...

wholesale jewelry , supply vast kinds of styles handmade jewelry,mainly engage in handmade jewelry wholesale handmade jewelry,such as wholesale pearl wholesale crystalwholesale gemstone,wholesale costume jewelry,also wholesale fashion jewelry like wholesale swarovski crystal,wholesale beads,wholesaleturquoise,wholesale coral,wholesale costume jewelry ,shell jewelrycostume jewelry and discount jewelry, jewelry wholesale, just on AYpearl jewelry store.

May 06, 2009 3:32 AM  
Blogger cheap wow gold said...

wow gold
wow power leveling
cheap wow gold
wow powerleveling
buy wow gold
wow gold
power leveling
World of Warcraft Gold
powerleveling
wow gold cheap
World of Warcraft power leveling
wow gold buy
World of Warcraft powerleveling
gold wow
wow power level
wowgold
wow powerlevel
power leveling wow
powerleveling wow

September 03, 2009 1:16 AM  
Blogger Kayla said...

www.crazypurchase.com Web site for the majority of the china wholesalers, and buy products wholesale to provide information and buy wholesale from china information exchange platform dedicated to becoming China Wholesale.

September 24, 2009 8:49 PM  
Blogger Kayla said...

Cell phones from simple communication became a full-featured entertainment terminal . Can be said that cell phone china new milestone in the industry. This fully demonstrates that, cheap cell phones entertainment has become the most sought after consumer applications and has become the focus of the mobil phones market.

September 24, 2009 8:50 PM  
Blogger Kayla said...

Present-day society, the rapid development of science and technology makes cell phones wholesale is no longer a simple phone communications equipment only. Wholesale cell phones have many features, entertainment, scalability, and so have a good expression of the discount cell phones will be to maximize the effectiveness of multimedia technology.

September 24, 2009 8:50 PM  
Blogger Adi said...

Pandeglang is one of many places in Indonesia are eligible for tourist destination.
Kenali dan Kunjungi Objek Wisata di Pandeglang Objek Wisata di Pandeglang Kenali dan Kunjungi Objek Wisata di Pandeglang Pantai Carita Seni Saman Rampak Bedug

October 29, 2009 11:07 PM  
Blogger xiaoxu said...

I like your blog, it's very good!
By the way, do you like spyder down jackets, I think they are very fashionable and chic, especially the spyder ski jackets, I love them so much. In my spare time, I also like playing tennis rackets, it can keep healthy, what do you like to do?
kids north face jackets
polo vest
polo jacket
abercrombie fitch mens shirts
polo jackets for men
polo jackets for women
burberry shirts for men
polo hoodies for women
columbia jackets women
polo sweatshirts for women
north face jackets on sale
polo shirts for women
polo shirts wholesale
spyder jackets
ralph lauren polo shirt
polo pants for men
abercrombie fitch shirt
wholesale abercrombie fitch shirts
polo vests
polo jackets
polo hoodies for men
burberry shirts for women
burberry shirts on sale
polo shirts for men
north face jackets cheap
north face jackets for women
north face jackets for men
polo sweatshirts for men
columbia jackets for men
columbia jackets discount
spyder jackets for men
discount spyder jackets
cheap spyder jackets
spyder jacket
spyder jackets for women
tennis rackets
cheap tennis rackets
discount tennis rackets
tennis rackets on sale
prince tennis racquets
head tennis racquets
wilson tennis racquets
babolat tennis racquets

November 05, 2009 6:09 PM  
Blogger chaoyang said...

Your blog is wonderful, I like it very much, thank you!
By the way, do you like polo shirts, which are very chic, especially the polo t shirts, I love them very much. I also like playing tennis rackets, it can keep healthy, what do you like to do?
polo t shirts women
polo t shirts on sale
polo t shirts for women
polo shirts on sale
polo shirts men
men's polo shirt
men polo shirt
mens polo shirts
mens polo shirt
cheap polo shirts
discount polo shirts
men's polo shirts
women's polo shirts
cheap tennis racket
discount tennis racket
prince tennis racquet
head tennis rackets
wilson tennis racket
babolat tennis racquet

December 14, 2009 11:10 PM  
Blogger nike said...

Clothing has always been a thing that has been given a great importance by human beings. It displays the attitude that the people exhibit.
ed hardy clothes
ed hardy shirts
Lots of brands have been existent in the clothing industry and a famous one among them is the Ed hardy clothing brand.
ed hardy jackets
ed hardy hoodies
The brand got its name from the famous American tattoo artist Ed Hardy. He was a very famous tattoo artist and has published many books on tattooing techniques.
ed hardy boots
ed hardy polo shirts
But his tattooing turned into a brand by the efforts of a company called Christian Audiger. This company was a very famous and very powerful company in the field of clothing.
ed hardy shoes
ed hardy jeans
They felt that it would be appropriate to create a brand called Ed hardy and use Hardy's art as the main selling point for the brand. This venture had turned out to be a very successful one and Ed hardy clothing is one of the most famous brands in the clothing industry.
ed hardy outerwear
ed hardy long sleeve shirts
The brand became very famous because it was worn by many famous celebrities like Madonna, Britney spears and also Sylvester Stallone.
ed hardy bags
ed hardy uggr boots
The brand has clothes for men, women, and kids. They have also diversified their business by having a lot of accessories to support their clothing business.
ed hardy love kills slowly shirts
ed hardy love kills slowly shoes
ed hardy love kills slowly boots
for men they have a variety of products such as active wear, denim, outwear, swim trucks, sweaters, t-shirts, tops etc.
ed hardy trousers
ed hardy mens
the accessories include things such as belts, caps, scarves, shoes, socks, jeweler, sunglasses, ties and even wallets.
The art works is a unique combination of American and Japanese cultures. The unique selling proposition of the brand is the way in which the company has used the art works of Ed hardy.
ed hardy womens
ed hardy t shirts
ed hardy sunglasses

December 15, 2009 4:49 PM  
Blogger nike said...

Nice work and thanks!
Running
Adidas currently manufactures several running shoesNike shoes, including the adiStar Control 5, the adiStar Ride
Cheap nike shoes
Discount nike shoes
the Supernova Sequence and the Supernova Cushion 7, among others.
Nike shox r4
nike shox torch
nike shox shoes
Adidas also uses kangaroo leather to make their more expensive shoes.
Association football
One of the main focuses of Adidas is football kit and associated equipment.
puma cat
cheap sport shoes
Adidas also provides apparel and equipment for all teams in Major League Soccer. Adidas remain a major company in the supply of team kits for international football teams.
cheap nike shox
cheap nike max
Adidas also makes referee kits that are used in international competition and by many countries and leagues in the world. In the United States, referees wear the Adidas kits in MLS matches even though the primary referee supplier is Official Sports.
nike tn dollar
nike running shoes
The company has been an innovator in the area of footwear for the sport with notable examples including development of the Copa Mondial moulded boot on firm dry pitches for forty years.
nike air max tn
puma shoes
Adidas became renowned for advancing the "Predator" boot design.This design featured a ribbed rubber structure for the upper leather of the shoe, used to accent the movement of the ball.
discount puma shoes
puma mens shoes
The Predator also features the Craig Johnston invented "Traxion" sole. As the development and popularity of Football continued Adidas played a leading role in shaping the style of the play itself.
puma running shoes
puma shoes
FIFA, the sports governing body, commissioned specially designed footballs for use in its own World Cup tournaments to favour more attacking play.
ghd hair straighteners mk4
hair straightners
ghd iv styler hair straightener
ghd hair straightners
cheap ghd hair straighteners

December 15, 2009 4:50 PM  
Blogger chaoyang said...

Your blog is very good, it's the best blog I've ever seen, thank you!
By the way, do you like polo shirts, which are very chic, especially the polo t shirts, I love them very much. I also like playing tennis rackets, it can keep healthy, what do you like to do? I'd like to introduce myself as the outlet of polo t shirts women, polo t shirts on sale, and polo t shirts for women. These products are our masterpieces, such as polo shirts on sale, polo shirts men, men's polo shirt, men polo shirt, mens polo shirts, mens polo shirt, besides we also sell cheap polo shirts, discount polo shirts, men's polo shirts, women's polo shirts. We are also the outlet of, cheap tennis racket, discount tennis racket, we recommend prince tennis racquet, head tennis rackets, wilson tennis racket, babolat tennis racquet. And it is our great pleasure that you come to our store online!

December 28, 2009 9:45 PM  
Blogger dreaz said...

araç sorgulama
sorgulama
ehliyet
açıköğretim
bağkur sorgulama
ssk sorgulama
emekli sandığı
cinsellik
radyo dinle
korku
evlilik
hikaye
gazeteler
ilan
ssk
iş ilanları
bağkur
gazete oku

January 17, 2010 1:49 PM  
Blogger feiyang said...

After read your blog, I think you are a wonderful person, for your blog is the best one I have ever seen. If you do not mind, I would like to know do you like fashion? Have you ever heard of polo shirts, which are very chic, especially the polo t shirts, I love them very much. I also like playing tennis rackets, it can keep healthy, what do you like to do? I consider it as my great pleasure to introduce myself as the outlet of polo t shirts women
polo t shirts on sale
and the warmly welcomed
polo t shirts for women
Now. I'd like to introduce our masterpieces, such as
polo shirts on sale
polo shirts men
men's polo shirt
men polo shirt
mens polo shirts
mens polo shirt
besides we also sell
cheap polo shirts
discount polo shirts
men's polo shirts
women's polo shirts
Which are popular with fashinable people. We are also the outlet of
cheap tennis racket
discount tennis racket
in this sporty season, we recommend
prince tennis racquet
head tennis rackets
wilson tennis racket
babolat tennis racquet
There more new products in our store online, we are expecting you to come. We can say that you must find your satisfied things in our store.

February 03, 2010 6:21 PM  
Blogger guli said...

In this sporty season, I like playing cheap tennis racket, it can keep healthy, what do you like to do? I consider it as my great pleasure to introduce myself as the outlet of discount tennis racket
these rackets are popular with people
prince tennis racquet
head tennis rackets
in this sporty season, we recommend
wilson tennis racket
babolat tennis racquet
discount babolat tennis rackets
There more new products in our store online, we are expecting you to come. We can say that you must find your satisfied things in our store
cheap tennis racquet
discount tennis racquets
cheap prince tennis racquet
if you like sport, you should not miss our store and our products
cheap wilson tennis racquets
cheap head tennis rackets

March 03, 2010 1:20 AM  
Blogger aai333 said...

Nice article written by you
cheap Nike dunkofdiscount nike dunkyounike dunk outlet
arediscount nike shoes
oncheap nike shoes
atChristian Louboutin shoes
youChloe bags outlet
cancheap Chloe handbags
bediscount Chloe bags
herenewest Chloe shoes
Chloe bags 2010
bape shoes outlet
bape clothingdiscount bape shoes
cheap bape shoes
bape jackets
ghd
cheap ghd
ghd straighteners
ghd outlet
discount ghds
ed hardy fashion story
ed hardy wholesale
cheap ed hardy wholesale
ghd
ghd outlet
cheap ghd
discount ghds
ghd straighteners
benefit GHD
GHD IV Salon Styler
GHD Mini Styler
kiss GHD
Pink GHD
Pure Black GHD
Pure White GHD
Purple GHD
Rare GHD
discount moncler Tshirt
air jordan
jordan shoes
nike shoes
air jordan 1
air jordan 11
air jordan 4

April 12, 2010 6:55 PM  
Blogger my blog said...

Guccio Gucci,son of an Italian trader founded the House of Gucci gucci boots outlet in Florence in 1906. Guccio, authentic gucci bags an extraordinary craftsman, started selling luxury goods in the 1920s. cheap gucci shoes In 1938, Gucci opened a boutique in Rome discount Gucci bags.Aldo expanded the company by opening more stores. newest gucci handbags In 1953, New York got its first Gucci store gucci handbags 2010 and by the late '60s, more such stores were launched in London, Paris and Tokyo. Being a proud owner of a watch Armani watches outlet is a wondrous thing that many take for granted. watch wholesale No one remembers back when things were simple and discount DG watches they had to call "time and temperature" to get an accurate time cheap Chanel watches. Now certain devices run on their own newest GUCCI watches with no batteries.
Juicy couture handbags are among the brands Juicy couture which have gained a great repute over a longer period of time. The quality authentic Juicy bags and material used for their manufacturing is up to the mark Juicy handbags outlet and has no match.
Thus with the holiday shopping season approaching rapidly tiffany 2010, as an investor, the best gift you may give yourself this year is not a ring from tiffany, but shares from Tiffany. With a fairly good fundamentals, tiffany outlet a strong presence over its competitors, discount tiffany charms and a favorable economic situation to feed upon, I would not be hesitant to take a short term risk cheap tiffany Bangles in locating some luck with.
stylers are often available with free gifts, discount ghds or other incentives, which can sometimes on offer ghd outlet seems too good to be true, ghd then it probably is. There are many imitation cheap ghd flooding the market , so you need to keep ghd straighteners your withs about you. wholesale edhardy t shirt Whether you like the colour or want to do your bit for charity, Moncler T-shirtsvery popular when they are available. jumpman 23

April 12, 2010 7:07 PM  
Blogger liuyu7521 said...

Designer purses and handbags cheap LV bagsTommy and Kate handbagsdiscount Gucci bags you wear it to work with friends newest Dooney&Bourke handbags
Kate is a designer labelChanel handbags
outlet
Tommy and Kate handbags Burberry handbags 2010
Shox Technology Nike Nike air jordan
2010
The effect is more traction basketball air jordan shoesLunarLite cheap Jordan shoes outlet Zoom Airjordan
Depending on the application discount
jordan shoes
maintaining extreme responsivenessjordan 2010Flywire
This is one of the newer technologies introduced by Nike. jumpman23to ensure that the foot is kept in place.
Timberland shoes or boots
cheap timberlandSince the Timberland
branddiscount timberlands
These boots are specially timberland
Boots
How we tall them apart?cheap
timberland uk
But on the other hand there are usually quite few real Timberland
discount timberland outlet lines
being sold for a fraction of the price. Sunglasses discounttimberland outlet are not limited
for the summer season alone. This is basically because sunglasses newest Gucci sunglasses
Here are five simple steps discount coach
sunglasses

In Marketing, discount Oakley sunglasses
Now because of customized sunglassRay Ban
sunglasses outlet
racks, unreclaimed creature, without refinement,
Nike shoesair max nike
in 1987 first time. Since then Nike newest air
max
has been frequently introducing new as well as updated models in it.cheap air max shoesJust because air max Clearly, consumers are just as happy as athletes.air max nike Also on thisJordan ajf shoes pair they Moncler,orMoncler jackets,maybe you like Moncler coats,discount Moncler Vest,you can choose someMoncler outletandmoncler polo t-shirt

April 12, 2010 7:49 PM  
Blogger liuyu7521 said...

Designer purses and handbags cheap LV bagsTommy and Kate handbagsdiscount Gucci bags you wear it to work with friends newest Dooney&Bourke handbags
Kate is a designer labelChanel handbags
outlet
Tommy and Kate handbags Burberry handbags 2010
Shox Technology Nike Nike air jordan
2010
The effect is more traction basketball air jordan shoesLunarLite cheap Jordan shoes outlet Zoom Airjordan
Depending on the application discount
jordan shoes
maintaining extreme responsivenessjordan 2010Flywire
This is one of the newer technologies introduced by Nike. jumpman23to ensure that the foot is kept in place.
Timberland shoes or boots
cheap timberlandSince the Timberland
branddiscount timberlands
These boots are specially timberland
Boots
How we tall them apart?cheap
timberland uk
But on the other hand there are usually quite few real Timberland
discount timberland outlet lines
being sold for a fraction of the price. Sunglasses discounttimberland outlet are not limited
for the summer season alone. This is basically because sunglasses newest Gucci sunglasses
Here are five simple steps discount coach
sunglasses

In Marketing, discount Oakley sunglasses
Now because of customized sunglassRay Ban
sunglasses outlet
racks, unreclaimed creature, without refinement,
Nike shoesair max nike
in 1987 first time. Since then Nike newest air
max
has been frequently introducing new as well as updated models in it.cheap air max shoesJust because air max Clearly, consumers are just as happy as athletes.air max nike Also on thisJordan ajf shoes pair they Moncler,orMoncler jackets,maybe you like Moncler coats,discount Moncler Vest,you can choose someMoncler outletandmoncler polo t-shirt

April 12, 2010 7:49 PM  
Blogger rong said...

Only 21 years old abercrombie & fitch clothing moncler , white abercrombie clothingby the ghd hair straighteners the British cheap ghd single-handedly founded ghd Burberry, Burberry (ghd outlet Brand: Burberry, silk Bo Li) as a discount ghd representative of the fashion brand sunglasses brand. BURBERRY founded in 1856LOGO, is the Royal gucci sunglasses outlet moncler polo t shirt g discount Oaklay sunglasses , cheap Ray Ban sunglasses .1901, BURBERRY designed the first Armani Sunglasses, the first World War, the trench coat is discount Armani Sunglasses as the senior British army Burberry Sunglasses. Today opened the Oxford Dictionary,BURBERRY discount Burberry Sunglasses coat has become another Cartier Sunglasses for. Today, BURBERRY by constantly discount Cartier Sunglasses its design and innovative plan to Chanel Sunglasses,discount Chanel Sunglasses classic sensibility with the perfect combination of Coach sunglasses times, in the fashion into the discount Coach sunglasses of a timeless brand!1890 Burberry jacket has been D&G Sunglasses for wet and dry enduring trend. In post-war discount D&G Sunglasses cop become a hobby-horse of many Dior Sunglasses stars, including HEPBURN and "Casablanca" discount Dior Sunglasses,discount Moncler outlet,ED Hardy Sunglassesin 1901 known trademark

April 12, 2010 8:21 PM  
Blogger rong said...

as a sign of Burberry. discount ED Hardy Sunglasses,Moncler jackets,Fendi Sunglasses "Nova" - on behalf of discount Fendi SunglassesGucci sunglasses for wet and dry inside, while in 1967 cheap Gucci sunglasses stered as a trademark after LV sunglasses more widely used in other products, such as umbrella and suitcase.Burberry - discount LV sunglasses Moncler VestOakley sunglassesdiscount Oakley sunglassesPolice sunglasses the film coat and skirt.Can not be denied, the British veteran Burberry - Poisson (BURBERRY Prorsum) Christopher discount Police sunglasses (Christopher Bailey), led by a Prada sunglasses at international, and sales have discount Prada sunglasses to rise, while the men in Ray Ban Sunglasses spring discount Ray Ban Sunglasses,Roberto Cavalli Sunglassesdiscount Roberto Cavalli SunglassesVersace Sunglassesdiscount Versace Sunglassesdiscount abercrombie and fitchabercrombie fitch outletcheap abercrombie fitchMoncler coatsdiscount LV handbag babyliss.

April 12, 2010 8:22 PM  
Blogger rong said...

here shoes college abercrombie clothingabercrombie outletcenturies abercrombie and fitch shirtsand abercrombie fitch outlet fluorabercrombie & fitch clothing leather abercrombie and fitch clothesman-made abercrombie and fitch clothing flexibiabercrombie fitch fabri any abercrombie & fitchcan feel abercrombie fitch clothing Christopher abercrombie and fitchBURBERRY abercrombie and fitch outlet clothing cheap abercrombie fitch tinuously abercrombie shirt the UK and global explorers, adventurers discount abercrombie and fitch clothes sports to ed hardy wholesale throughs cheap ed hardy wholesaleNew BURBERRY discount ed hardy wholesale embodies wholesale ed hardy vitality BURBERRY ed hardy outlet attitude paulsmith British paulsmith outlet BURBERRY paulsmith 2010productcheap paulsmith national discount paulsmith brand (paul smith shoes and Burberry Lookbook Burberry outletoutspoken cheap Burberry Burberry discount Burberry to brand. Burberry (Burberry) newest Burberrygirls Burberry Shoes outlet fascination vest Burberry bagsshortsBurberry purseinnovative Burberry sunglasses Oh will newest Burberry suit it will moncler T-shirts

April 12, 2010 8:23 PM  
Blogger aai333 said...

Nice article written by you
cheap Nike dunkofdiscount nike dunkyounike dunk outlet
arediscount nike shoes
oncheap nike shoes
atChristian Louboutin shoes
youChloe bags outlet
cancheap Chloe handbags
bediscount Chloe bags
herenewest Chloe shoes
Chloe bags 2010
bape shoes outlet
bape clothingdiscount bape shoes
cheap bape shoes
bape jackets
ghd
cheap ghd
ghd straighteners
ghd outlet
discount ghds
ed hardy fashion story
ed hardy wholesale
cheap ed hardy wholesale
ghd
ghd outlet
cheap ghd
discount ghds
ghd straighteners
benefit GHD
GHD IV Salon Styler
GHD Mini Styler
kiss GHD
Pink GHD
Pure Black GHD
Pure White GHD
Purple GHD
Rare GHD
discount moncler Tshirt
air jordan
jordan shoes
nike shoes
air jordan 1
air jordan 11
air jordan 4

April 13, 2010 7:04 PM  
Blogger liuyu7521 said...

Designer purses and handbags cheap LV bagsTommy and Kate handbagsdiscount Gucci bags you wear it to work with friends newest Dooney&Bourke handbags
Kate is a designer labelChanel handbags
outlet
Tommy and Kate handbags Burberry handbags 2010
Shox Technology Nike Nike air jordan
2010
The effect is more traction basketball air jordan shoesLunarLite cheap Jordan shoes outlet Zoom Airjordan
Depending on the application discount
jordan shoes
maintaining extreme responsivenessjordan 2010Flywire
This is one of the newer technologies introduced by Nike. jumpman23to ensure that the foot is kept in place.
Timberland shoes or boots
cheap timberlandSince the Timberland
branddiscount timberlands
These boots are specially timberland
Boots
How we tall them apart?cheap
timberland uk
But on the other hand there are usually quite few real Timberland
discount timberland outlet lines
being sold for a fraction of the price. Sunglasses discounttimberland outlet are not limited
for the summer season alone. This is basically because sunglasses newest Gucci sunglasses
Here are five simple steps discount coach
sunglasses

In Marketing, discount Oakley sunglasses
Now because of customized sunglassRay Ban
sunglasses outlet
racks, unreclaimed creature, without refinement,
Nike shoesair max nike
in 1987 first time. Since then Nike newest air
max
has been frequently introducing new as well as updated models in it.cheap air max shoesJust because air max Clearly, consumers are just as happy as athletes.air max nike Also on thisJordan ajf shoes pair they Moncler,orMoncler jackets,maybe you like Moncler coats,discount Moncler Vest,you can choose someMoncler outletandmoncler polo t-shirt

April 13, 2010 7:34 PM  
Blogger liuyu7521 said...

Designer purses and handbags cheap LV bagsTommy and Kate handbagsdiscount Gucci bags you wear it to work with friends newest Dooney&Bourke handbags
Kate is a designer labelChanel handbags
outlet
Tommy and Kate handbags Burberry handbags 2010
Shox Technology Nike Nike air jordan
2010
The effect is more traction basketball air jordan shoesLunarLite cheap Jordan shoes outlet Zoom Airjordan
Depending on the application discount
jordan shoes
maintaining extreme responsivenessjordan 2010Flywire
This is one of the newer technologies introduced by Nike. jumpman23to ensure that the foot is kept in place.
Timberland shoes or boots
cheap timberlandSince the Timberland
branddiscount timberlands
These boots are specially timberland
Boots
How we tall them apart?cheap
timberland uk
But on the other hand there are usually quite few real Timberland
discount timberland outlet lines
being sold for a fraction of the price. Sunglasses discounttimberland outlet are not limited
for the summer season alone. This is basically because sunglasses newest Gucci sunglasses
Here are five simple steps discount coach
sunglasses

In Marketing, discount Oakley sunglasses
Now because of customized sunglassRay Ban
sunglasses outlet
racks, unreclaimed creature, without refinement,
Nike shoesair max nike
in 1987 first time. Since then Nike newest air
max
has been frequently introducing new as well as updated models in it.cheap air max shoesJust because air max Clearly, consumers are just as happy as athletes.air max nike Also on thisJordan ajf shoes pair they Moncler,orMoncler jackets,maybe you like Moncler coats,discount Moncler Vest,you can choose someMoncler outletandmoncler polo t-shirt

April 13, 2010 7:35 PM  
Blogger ai said...

polo boots
polo shoes

cheap herve leger outlet
herve leger outlet
discount herve leger 2010
newest herve leger

discount chanel bags outlet
cheap chanel bags outlet
chanel bags outlet
chanel bags 2010
newest chanel bags

cheap ralph Lauren polo shirts
discount ralph lauren outlet
lacoste polo
polo shirt 2010

Nike air jordan 2010
basketball air jordan shoes
cheap jordan shoes outlet
jordan
discount jordan shoes

moncler
discout moncler jackets
moncler coats
moncler vest
moncler outlet
moncler Polo t shirt

April 13, 2010 11:26 PM  
Blogger ai said...

polo boots
polo shoes

cheap herve leger outlet
herve leger outlet
discount herve leger 2010
newest herve leger

discount chanel bags outlet
cheap chanel bags outlet
chanel bags outlet
chanel bags 2010
newest chanel bags

cheap ralph Lauren polo shirts
discount ralph lauren outlet
lacoste polo
polo shirt 2010

Nike air jordan 2010
basketball air jordan shoes
cheap jordan shoes outlet
jordan
discount jordan shoes

moncler
discout moncler jackets
moncler coats
moncler vest
moncler outlet
moncler Polo t shirt

April 13, 2010 11:27 PM  
Blogger rong said...

Only 21 years old abercrombie & fitch clothing moncler , white abercrombie clothingby the ghd hair straighteners the British cheap ghd single-handedly founded ghd Burberry, Burberry (ghd outlet Brand: Burberry, silk Bo Li) as a discount ghd representative of the fashion brand sunglasses brand. BURBERRY founded in 1856LOGO, is the Royal gucci sunglasses outlet moncler polo t shirt g discount Oaklay sunglasses , cheap Ray Ban sunglasses .1901, BURBERRY designed the first Armani Sunglasses, the first World War, the trench coat is discount Armani Sunglasses as the senior British army Burberry Sunglasses. Today opened the Oxford Dictionary,BURBERRY discount Burberry Sunglasses coat has become another Cartier Sunglasses for. Today, BURBERRY by constantly discount Cartier Sunglasses its design and innovative plan to Chanel Sunglasses,discount Chanel Sunglasses classic sensibility with the perfect combination of Coach sunglasses times, in the fashion into the discount Coach sunglasses of a timeless brand!1890 Burberry jacket has been D&G Sunglasses for wet and dry enduring trend. In post-war discount D&G Sunglasses cop become a hobby-horse of many Dior Sunglasses stars, including HEPBURN and "Casablanca" discount Dior Sunglasses,discount Moncler outlet,ED Hardy Sunglassesin 1901 known trademark

April 14, 2010 12:09 AM  
Blogger rong said...

as a sign of Burberry. discount ED Hardy Sunglasses,Moncler jackets,Fendi Sunglasses "Nova" - on behalf of discount Fendi SunglassesGucci sunglasses for wet and dry inside, while in 1967 cheap Gucci sunglasses stered as a trademark after LV sunglasses more widely used in other products, such as umbrella and suitcase.Burberry - discount LV sunglasses Moncler VestOakley sunglassesdiscount Oakley sunglassesPolice sunglasses the film coat and skirt.Can not be denied, the British veteran Burberry - Poisson (BURBERRY Prorsum) Christopher discount Police sunglasses (Christopher Bailey), led by a Prada sunglasses at international, and sales have discount Prada sunglasses to rise, while the men in Ray Ban Sunglasses spring discount Ray Ban Sunglasses,Roberto Cavalli Sunglassesdiscount Roberto Cavalli SunglassesVersace Sunglassesdiscount Versace Sunglassesdiscount abercrombie and fitchabercrombie fitch outletcheap abercrombie fitchMoncler coatsdiscount LV handbag babyliss.

April 14, 2010 12:12 AM  
Blogger rong said...

here shoes college abercrombie clothingabercrombie outletcenturies abercrombie and fitch shirtsand abercrombie fitch outlet fluorabercrombie & fitch clothing leather abercrombie and fitch clothesman-made abercrombie and fitch clothing flexibiabercrombie fitch fabri any abercrombie & fitchcan feel abercrombie fitch clothing Christopher abercrombie and fitchBURBERRY abercrombie and fitch outlet clothing cheap abercrombie fitch tinuously abercrombie shirt the UK and global explorers, adventurers discount abercrombie and fitch clothes sports to ed hardy wholesale throughs cheap ed hardy wholesaleNew BURBERRY discount ed hardy wholesale embodies wholesale ed hardy vitality BURBERRY ed hardy outlet attitude paulsmith British paulsmith outlet BURBERRY paulsmith 2010productcheap paulsmith national discount paulsmith brand (paul smith shoes and Burberry Lookbook Burberry outletoutspoken cheap Burberry Burberry discount Burberry to brand. Burberry (Burberry) newest Burberrygirls Burberry Shoes outlet fascination vest Burberry bagsshortsBurberry purseinnovative Burberry sunglasses Oh will newest Burberry suit it will moncler T-shirts

April 14, 2010 12:14 AM  
Blogger fangfang said...

MBT will not only change,MBT bootsthe north faceMBT Shoes in fashionnorth face jacketsCheap MBT Shoes sale,north face outletDiscount MBT outlet 2010, MBT Walking Shoes, healthy posture and walk. What are the benefits?Cheap Dior shoes,north face outerwear Discount Dior bags, on all dior. Included with each pair of isDior sunglasses, north face coatsWhat is Dior?Dior sunglasses outlet 2010,Technology or dior isNewest Dior sunglasses,Do not worry.The urge to buyDiscount New Balance shoesrevolutionary fitness aid from Swiss MasaiNew Balance 580 outlet,which may help reduce celluliteCheap New Balance 850,Relieves muscular tension backNew Balance running shoesThrough its unique design ofNew Balance shoes 2010,north face ukDiscount PUMA Outlet, with top quality and cheap price. Cheap PUMA running shoes, innovative sole design includes thePuma sneaker 2010, curved sole which is theKids Puma Shoesis good for our footPuma Walking Shoes, back ,nice,good and knee is Puma Shoes. Here you can buy wide rangewholesale cl high heel sandalsquality and cheap car GPS navigation systemsMonclerVery Cool, Comfortable and lightmoncler jackets original packing you can rest assured.moncler coatsYou might say that thediscount moncler vestNo one ever thought bothmoncler outletAs with everything comes fmonmoncler t-shirtThe new store has been decoratedGHDYou might say that thecheap GHDyou may get the newDiscount GHD hair straightenermany new color options of theGHD hair straightenersyour choice will be rightGHD outlet

April 16, 2010 11:16 PM  
Blogger 良哥 said...

Teenagers adidas tennis shoes can discount adidas sneakers teenage newest adidas shoes 2010 shoes discount moncler outlet cross cheap adidas shoes important wholesale adidas shoes growing adidas shoes outlet they discount moncler t-shirt shoes cheap jordan shoes changes new jordan shoes every time new jordan shoes shoes air jordan 2010 qualities discount jordan shoes soles jumpman 23 material Jordan ajf shoes breathes Newest Timberland shoes 2010 extended cheap Nike shox shoes support discount brand shoes ankles cheap Nike Dunk shoes injury AIR MAX shoes outlet when cheap ghd store ghd hair straightener home shoes discount ghd hair straightener properly ghd outlet returnable ghd running shoe cheap bourke dooney handbags good grip authentic dooney bourke bags breathes easily newest dooney bourke handbags should be moncler vest light enough dooney bourke new purses still support discount dooney bourke handbags outlet especially injury wholesale Rolex watches But just moncler hair iron,moncler jackets money.moncler coats

April 18, 2010 7:32 PM  

Post a Comment

Links to this post:

Create a Link

<< Home