storify 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/storify.rb +1 -0
- data/lib/storify/client.rb +17 -2
- data/spec/client_spec.rb +43 -3
- data/spec/storify_spec.rb +4 -0
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 58748b03027c0d1b55dab4d3c625a623f5ac885b
         | 
| 4 | 
            +
              data.tar.gz: 35b8e4dfdf2ffbea53947b09dbb0bb64bcf6700e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7a599dff3581d8912472d1f096abde3c38867437828f7fbba68e780aa42087e565bb627b9c96e8b992d2737d5735f500f8c8ca7657d40566d6eb10a09e66d3d0
         | 
| 7 | 
            +
              data.tar.gz: 8337f44f6dabe2e3d3bb8d7c95b5c7b1d55b31467a8740933684047ceb93c04dbb37abddb7b18c017cf3ea1803e8a6088aae63b8241eab642a7fc39debf00feb
         | 
    
        data/lib/storify.rb
    CHANGED
    
    
    
        data/lib/storify/client.rb
    CHANGED
    
    | @@ -135,8 +135,23 @@ module Storify | |
| 135 135 | 
             
                  User.new.extend(UserRepresentable).from_json(json)
         | 
| 136 136 | 
             
                end
         | 
| 137 137 |  | 
| 138 | 
            +
                def update_profile(user, options: {})
         | 
| 139 | 
            +
                  raise "Not a User" unless user.is_a?(Storify::User)
         | 
| 140 | 
            +
             | 
| 141 | 
            +
                  username = user.username
         | 
| 142 | 
            +
                  endpoint = Storify::endpoint(version: options[:version],
         | 
| 143 | 
            +
                                               protocol: options[:protocol],
         | 
| 144 | 
            +
                                               method: :update_profile,
         | 
| 145 | 
            +
                                               params: {':username' => username})
         | 
| 146 | 
            +
             | 
| 147 | 
            +
                  json = user.to_json
         | 
| 148 | 
            +
                  data = call(endpoint, :POST, params: {:user => json})
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                  true
         | 
| 151 | 
            +
                end
         | 
| 152 | 
            +
             | 
| 138 153 | 
             
                def publish(story, options: {})
         | 
| 139 | 
            -
             | 
| 154 | 
            +
             | 
| 140 155 | 
             
                  # ensure we have a story w/slug and author
         | 
| 141 156 | 
             
                  raise "Not a Story" unless story.is_a?(Storify::Story)
         | 
| 142 157 | 
             
                  raise "No slug found" if story.slug.nil?
         | 
| @@ -153,7 +168,7 @@ module Storify | |
| 153 168 |  | 
| 154 169 | 
             
                  # attempt to publish
         | 
| 155 170 | 
             
                  json = story.to_json
         | 
| 156 | 
            -
                  data = call(endpoint, :POST, params: {: | 
| 171 | 
            +
                  data = call(endpoint, :POST, params: {:story => json})
         | 
| 157 172 | 
             
                  true
         | 
| 158 173 | 
             
                end
         | 
| 159 174 |  | 
    
        data/spec/client_spec.rb
    CHANGED
    
    | @@ -132,19 +132,59 @@ describe Storify::Client do | |
| 132 132 | 
             
                  @client.publish(story).should == true
         | 
| 133 133 | 
             
                end
         | 
| 134 134 |  | 
| 135 | 
            -
                it "should  | 
| 135 | 
            +
                it "should accept endpoint options" do
         | 
| 136 | 
            +
                  options = {:version => :v1, :protocol => :insecure}
         | 
| 137 | 
            +
                  story = @client.story('test-story', @username)
         | 
| 138 | 
            +
                  @client.publish(story, options: options).should == true
         | 
| 139 | 
            +
                end
         | 
| 140 | 
            +
             | 
| 141 | 
            +
                it "should allow changes to the story during a publish" do
         | 
| 136 142 | 
             
                  story = @client.story('no-embeds', @username)
         | 
| 137 143 | 
             
                  new_desc = "New Description #{Random.new(Random.new_seed).to_s}"
         | 
| 138 | 
            -
                  old_desc = story.description
         | 
| 139 144 |  | 
| 140 145 | 
             
                  story.description = new_desc
         | 
| 141 146 | 
             
                  story.description.should == new_desc
         | 
| 142 147 | 
             
                  @client.publish(story).should == true
         | 
| 143 148 |  | 
| 144 149 | 
             
                  revised = @client.story('no-embeds', @username)
         | 
| 145 | 
            -
                  revised.description.should ==  | 
| 150 | 
            +
                  revised.description.should == new_desc
         | 
| 151 | 
            +
                end
         | 
| 152 | 
            +
              end
         | 
| 153 | 
            +
             | 
| 154 | 
            +
              context "POST /users/:username/update" do
         | 
| 155 | 
            +
                it "should raise an exception if a user is not provided" do
         | 
| 156 | 
            +
                  expect{@client.update_profile(nil)}.to raise_exception
         | 
| 157 | 
            +
                end
         | 
| 158 | 
            +
             | 
| 159 | 
            +
                it "should raise an exception if the user cannot be found" do
         | 
| 160 | 
            +
                  user = Storify::User.new.extend(Storify::UserRepresentable)
         | 
| 161 | 
            +
                  user.username = "rtejpar$$$$"
         | 
| 162 | 
            +
                  expect{@client.update_profile(user)}.to raise_exception(Storify::ApiError)
         | 
| 146 163 | 
             
                end
         | 
| 147 164 |  | 
| 165 | 
            +
                it "should raise an exception if the profile cannot be updated" do
         | 
| 166 | 
            +
                  user = Storify::User.new.extend(Storify::UserRepresentable)
         | 
| 167 | 
            +
                  user.username = "storify"
         | 
| 168 | 
            +
                  expect{@client.update_profile(user)}.to raise_exception(Storify::ApiError)
         | 
| 169 | 
            +
                end
         | 
| 170 | 
            +
             | 
| 171 | 
            +
                it "should accept/reject updates to profile information based on plan status" do
         | 
| 172 | 
            +
                  user = @client.profile(@username)
         | 
| 173 | 
            +
                  user.location = "Loc #{Random.new(Random.new_seed).to_s}"
         | 
| 174 | 
            +
             | 
| 175 | 
            +
                  if user.paid_plan == "free"
         | 
| 176 | 
            +
                    expect{@client.update_profile(user)}.to raise_exception(Storify::ApiError)
         | 
| 177 | 
            +
                  else
         | 
| 178 | 
            +
                    @client.update_profile(user).should == true
         | 
| 179 | 
            +
                  end
         | 
| 180 | 
            +
                end
         | 
| 181 | 
            +
             | 
| 182 | 
            +
                it "should support endpoint options" do
         | 
| 183 | 
            +
                  options = {:version => :v1, :protocol => :insecure}
         | 
| 184 | 
            +
                  user = Storify::User.new.extend(Storify::UserRepresentable)
         | 
| 185 | 
            +
                  user.username = "rtejpar$$$$"
         | 
| 186 | 
            +
                  expect{@client.update_profile(user, options: options)}.to raise_exception(Storify::ApiError)
         | 
| 187 | 
            +
                end
         | 
| 148 188 | 
             
              end
         | 
| 149 189 |  | 
| 150 190 | 
             
              context "Serialization" do
         | 
    
        data/spec/storify_spec.rb
    CHANGED
    
    | @@ -85,6 +85,10 @@ describe Storify do | |
| 85 85 | 
             
                it "should support the Publish Story endpoint" do
         | 
| 86 86 | 
             
                  Storify::ENDPOINTS[:v1][:publish].should == "/stories/:username/:slug/publish"
         | 
| 87 87 | 
             
                end
         | 
| 88 | 
            +
             | 
| 89 | 
            +
                it "should support the Update User Profile endpoint" do
         | 
| 90 | 
            +
                  Storify::ENDPOINTS[:v1][:update_profile].should == "/users/:username/update"
         | 
| 91 | 
            +
                end
         | 
| 88 92 | 
             
              end
         | 
| 89 93 |  | 
| 90 94 | 
             
              context "API Endpoint URI Builder:" do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: storify
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.12
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Rizwan Tejpar
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2013-12- | 
| 11 | 
            +
            date: 2013-12-16 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: json
         |