document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-102593\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"k\">class<\/span> <span class=\"nc\">Spreedly<\/span><span class=\"o\">::<\/span><span class=\"no\">Subscriber<\/span><\/div><div class=\"line\" id=\"LC2\">&nbsp;<\/div><div class=\"line\" id=\"LC3\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"no\">ENV<\/span><span class=\"o\">[<\/span><span class=\"s2\">&quot;SPREEDLY&quot;<\/span><span class=\"o\">]<\/span> <span class=\"o\">==<\/span> <span class=\"s2\">&quot;REAL&quot;<\/span><\/div><div class=\"line\" id=\"LC4\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\"># use the methods already in the gem<\/span><\/div><div class=\"line\" id=\"LC5\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">elsif<\/span> <span class=\"no\">Merb<\/span><span class=\"o\">.<\/span><span class=\"n\">environment<\/span> <span class=\"o\">==<\/span> <span class=\"s2\">&quot;test&quot;<\/span><\/div><div class=\"line\" id=\"LC6\">&nbsp;&nbsp;&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC7\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\"># override self.attributes with :on_trial<\/span><\/div><div class=\"line\" id=\"LC8\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"nb\">self<\/span><span class=\"o\">.<\/span><span class=\"n\">attributes<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC9\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:created_at<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"no\">Time<\/span><span class=\"o\">.<\/span><span class=\"n\">now<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:token<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{(<\/span><span class=\"nb\">rand<\/span> <span class=\"o\">*<\/span> <span class=\"mi\">1000<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">round<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC11\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:active<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"kp\">false<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC12\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:store_credit<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"no\">BigDecimal<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;0.0&quot;<\/span><span class=\"p\">)},<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:active_until<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"kp\">nil<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC14\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:feature_level<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"s2\">&quot;&quot;<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC15\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:on_trial<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"kp\">false<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:billing_first_name<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"s2\">&quot;John&quot;<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:billing_last_name<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"s2\">&quot;Doe&quot;<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:email<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"s2\">&quot;johndoe@gmail.com&quot;<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:subscription_plan_name<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"s2\">&quot;Test&quot;<\/span><span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"ss\">:card_expires_before_next_auto_renew<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">proc<\/span><span class=\"p\">{<\/span><span class=\"kp\">false<\/span><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span>  <\/div><div class=\"line\" id=\"LC22\">&nbsp;&nbsp;&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\"># add these methods not currently available to the mocking portion of the spreedly gem<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">activate_free_trial<\/span><span class=\"p\">(<\/span><span class=\"n\">subscription_id<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC25\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">raise<\/span> <span class=\"s2\">&quot;Could not active free trial for subscriber: subscriber or subscription plan no longer exists.&quot;<\/span> <span class=\"k\">unless<\/span> <span class=\"nb\">self<\/span><span class=\"o\">.<\/span><span class=\"n\">class<\/span><span class=\"o\">.<\/span><span class=\"n\">find<\/span><span class=\"p\">(<\/span><span class=\"nb\">id<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">raise<\/span> <span class=\"s2\">&quot;Could not activate free trial for subscriber: validation failed. missing subscription plan id&quot;<\/span> <span class=\"k\">unless<\/span> <span class=\"n\">subscription_id<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"vi\">@attributes<\/span><span class=\"o\">[<\/span><span class=\"ss\">:active<\/span><span class=\"o\">]<\/span> <span class=\"o\">=<\/span> <span class=\"kp\">true<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"vi\">@attributes<\/span><span class=\"o\">[<\/span><span class=\"ss\">:on_trial<\/span><span class=\"o\">]<\/span> <span class=\"o\">=<\/span> <span class=\"kp\">true<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC30\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC31\">&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC32\"><span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC33\">&nbsp;<\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/102593/3d273cf4994a18f0654eda9e03606a28221b46f4/spreedly_subscriber.rb\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/102593#file_spreedly_subscriber.rb\" style=\"float:right;margin-right:10px;color:#666\">spreedly_subscriber.rb<\/a>\n          <a href=\"http://gist.github.com/102593\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
