etherpad-lite 0.1.0.rc2 → 0.1.0
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.
- data/CHANGELOG +2 -2
- data/lib/etherpad-lite.rb +1 -0
- data/lib/etherpad-lite/client.rb +18 -4
- data/lib/etherpad-lite/models/author.rb +10 -0
- data/lib/etherpad-lite/models/pad.rb +21 -0
- data/lib/etherpad-lite/version.rb +5 -0
- data/spec/author_spec.rb +6 -0
- data/spec/config.yml +2 -3
- data/spec/pad_spec.rb +16 -0
- metadata +47 -28
    
        data/CHANGELOG
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 | 
            -
            ** RELEASE 0.1.0 ( | 
| 1 | 
            +
            ** RELEASE 0.1.0 (07/07/2012) **
         | 
| 2 2 |  | 
| 3 3 | 
             
            * Requires Etherpad Lite 1.1+
         | 
| 4 | 
            -
            * Added support for  | 
| 4 | 
            +
            * Added support for getHTML, setHTML, listAuthorsOfPad, listPadsOfAuthor, getLastEdited, and padUsersCount
         | 
| 5 5 | 
             
            * Uses POST for API calls which alter data - this allows much larger pad content to be written
         | 
| 6 6 | 
             
            * Various minor improvements and bugfixes
         | 
| 7 7 | 
             
            * More complete documentation and examples
         | 
    
        data/lib/etherpad-lite.rb
    CHANGED
    
    
    
        data/lib/etherpad-lite/client.rb
    CHANGED
    
    | @@ -7,10 +7,6 @@ require 'json' | |
| 7 7 | 
             
            BAD_RUBY = RUBY_VERSION < '1.9.0' # :nodoc:
         | 
| 8 8 |  | 
| 9 9 | 
             
            module EtherpadLite
         | 
| 10 | 
            -
              MAJOR_VERSION, MINOR_VERSION, TINY_VERSION, PRE_VERSION = 0, 1, 0, 'rc2' # :nodoc:
         | 
| 11 | 
            -
              # The client version
         | 
| 12 | 
            -
              VERSION = [MAJOR_VERSION, MINOR_VERSION, TINY_VERSION, PRE_VERSION].compact.join '.'
         | 
| 13 | 
            -
             | 
| 14 10 | 
             
              # An error returned by the server
         | 
| 15 11 | 
             
              class APIError < StandardError
         | 
| 16 12 | 
             
                MESSAGE = "Error while talking to the API (%s). Make sure you are running the latest version of the Etherpad Lite server. If that is not possible, try rolling this client back to an earlier version."
         | 
| @@ -140,6 +136,10 @@ module EtherpadLite | |
| 140 136 | 
             
                  post :createAuthorIfNotExistsFor, params
         | 
| 141 137 | 
             
                end
         | 
| 142 138 |  | 
| 139 | 
            +
                def listPadsOfAuthor(authorID)
         | 
| 140 | 
            +
                  get :listPadsOfAuthor, :authorID => authorID
         | 
| 141 | 
            +
                end
         | 
| 142 | 
            +
             | 
| 143 143 | 
             
                # Sessions
         | 
| 144 144 | 
             
                # Sessions can be created between a group and an author. This allows
         | 
| 145 145 | 
             
                # an author to access more than one group. The sessionID will be set as
         | 
| @@ -214,6 +214,16 @@ module EtherpadLite | |
| 214 214 | 
             
                  get :getRevisionsCount, :padID => padID
         | 
| 215 215 | 
             
                end
         | 
| 216 216 |  | 
| 217 | 
            +
                # Returns the number of users currently editing the pad
         | 
| 218 | 
            +
                def padUsersCount(padID)
         | 
| 219 | 
            +
                  get :padUsersCount, :padID => padID
         | 
| 220 | 
            +
                end
         | 
| 221 | 
            +
             | 
| 222 | 
            +
                # Returns the time the pad was last edited as a Unix timestamp
         | 
| 223 | 
            +
                def getLastEdited(padID)
         | 
| 224 | 
            +
                  get :getLastEdited, :padID => padID
         | 
| 225 | 
            +
                end
         | 
| 226 | 
            +
             | 
| 217 227 | 
             
                # Delete the given Pad
         | 
| 218 228 | 
             
                def deletePad(padID)
         | 
| 219 229 | 
             
                  post :deletePad, :padID => padID
         | 
| @@ -224,6 +234,10 @@ module EtherpadLite | |
| 224 234 | 
             
                  get :getReadOnlyID, :padID => padID
         | 
| 225 235 | 
             
                end
         | 
| 226 236 |  | 
| 237 | 
            +
                def listAuthorsOfPad(padID)
         | 
| 238 | 
            +
                  get :listAuthorsOfPad, :padID => padID
         | 
| 239 | 
            +
                end
         | 
| 240 | 
            +
             | 
| 227 241 | 
             
                # Sets a boolean for the public status of a Pad
         | 
| 228 242 | 
             
                def setPublicStatus(padID, publicStatus)
         | 
| 229 243 | 
             
                  post :setPublicStatus, :padID => padID, :publicStatus => publicStatus
         | 
| @@ -80,6 +80,16 @@ module EtherpadLite | |
| 80 80 | 
             
                  @name = options[:name]
         | 
| 81 81 | 
             
                end
         | 
| 82 82 |  | 
| 83 | 
            +
                # Returns an array of pad ids that this author has edited
         | 
| 84 | 
            +
                def pad_ids
         | 
| 85 | 
            +
                  @instance.client.listPadsOfAuthor(@id)[:padIDs] || []
         | 
| 86 | 
            +
                end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                # Returns an array of Pads that this author has edited
         | 
| 89 | 
            +
                def pads
         | 
| 90 | 
            +
                  pad_ids.map { |id| Pad.new(@instance, id) }
         | 
| 91 | 
            +
                end
         | 
| 92 | 
            +
             | 
| 83 93 | 
             
                # Create a new session for group that will last length_in_minutes.
         | 
| 84 94 | 
             
                def create_session(group, length_in_min)
         | 
| 85 95 | 
             
                  Session.create(@instance, group.id, @id, length_in_min)
         | 
| @@ -119,11 +119,32 @@ module EtherpadLite | |
| 119 119 | 
             
                  revision_numbers.map { |n| Pad.new(@instance, @id, :rev => n) }
         | 
| 120 120 | 
             
                end
         | 
| 121 121 |  | 
| 122 | 
            +
                # Returns the number of users currently editing a pad
         | 
| 123 | 
            +
                def user_count
         | 
| 124 | 
            +
                  @instance.client.padUsersCount(@id)[:padUsersCount]
         | 
| 125 | 
            +
                end
         | 
| 126 | 
            +
                alias_method :users_count, :user_count
         | 
| 127 | 
            +
             | 
| 122 128 | 
             
                # Returns the Pad's read-only id. This is cached.
         | 
| 123 129 | 
             
                def read_only_id
         | 
| 124 130 | 
             
                  @read_only_id ||= @instance.client.getReadOnlyID(@id)[:readOnlyID]
         | 
| 125 131 | 
             
                end
         | 
| 126 132 |  | 
| 133 | 
            +
                # Returns the time the pad was last edited as a Unix timestamp
         | 
| 134 | 
            +
                def last_edited
         | 
| 135 | 
            +
                  @instance.client.getLastEdited(@id)[:lastEdited]
         | 
| 136 | 
            +
                end
         | 
| 137 | 
            +
             | 
| 138 | 
            +
                # Returns an array of ids of authors who've edited this pad
         | 
| 139 | 
            +
                def author_ids
         | 
| 140 | 
            +
                  @instance.client.listAuthorsOfPad(@id)[:authorIDs] || []
         | 
| 141 | 
            +
                end
         | 
| 142 | 
            +
             | 
| 143 | 
            +
                # Returns an array of Authors who've edited this pad
         | 
| 144 | 
            +
                def authors
         | 
| 145 | 
            +
                  author_ids.map { |id| Author.new(@instance, id) }
         | 
| 146 | 
            +
                end
         | 
| 147 | 
            +
             | 
| 127 148 | 
             
                # Returns true if this is a public Pad (opposite of private?).
         | 
| 128 149 | 
             
                # This only applies to Pads belonging to a Group.
         | 
| 129 150 | 
             
                def public?
         | 
    
        data/spec/author_spec.rb
    CHANGED
    
    | @@ -21,4 +21,10 @@ describe EtherpadLite::Author do | |
| 21 21 | 
             
                # They should be the same
         | 
| 22 22 | 
             
                author1.id.should == author2.id
         | 
| 23 23 | 
             
              end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              it "should list pads of 'Author A'" do
         | 
| 26 | 
            +
                author = @eth.create_author :mapper => 'Author A'
         | 
| 27 | 
            +
                author.pad_ids.should == []
         | 
| 28 | 
            +
                author.pads.should == []
         | 
| 29 | 
            +
              end
         | 
| 24 30 | 
             
            end
         | 
    
        data/spec/config.yml
    CHANGED
    
    | @@ -1,4 +1,3 @@ | |
| 1 | 
            -
            :url:  | 
| 2 | 
            -
             | 
| 3 | 
            -
            # Full filesystem path to APIKEY.txt, may be used instead of the above :api_key setting
         | 
| 1 | 
            +
            :url: 9003
         | 
| 2 | 
            +
            #:api_key: UrdBfgceHYDZs4yr1rQ12rVOzo31XfEW
         | 
| 4 3 | 
             
            :api_key_file: /home/jhollinger/devel/etherpad-lite/APIKEY.txt
         | 
    
        data/spec/pad_spec.rb
    CHANGED
    
    | @@ -88,6 +88,22 @@ describe EtherpadLite::Pad do | |
| 88 88 | 
             
                pad.text.should == "Brand new text\n"
         | 
| 89 89 | 
             
              end
         | 
| 90 90 |  | 
| 91 | 
            +
              it "should list author ids" do
         | 
| 92 | 
            +
                pad = @eth.pad 'brand new pad2'
         | 
| 93 | 
            +
                pad.author_ids.should == []
         | 
| 94 | 
            +
                pad.authors.should == []
         | 
| 95 | 
            +
              end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
              it "should get the last edit date" do
         | 
| 98 | 
            +
                pad = @eth.pad 'brand new pad3'
         | 
| 99 | 
            +
                pad.last_edited.>(1).should == true
         | 
| 100 | 
            +
              end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
              it "should return the number of users" do
         | 
| 103 | 
            +
                pad = @eth.pad 'brand new pad3'
         | 
| 104 | 
            +
                pad.user_count.should == 0
         | 
| 105 | 
            +
              end
         | 
| 106 | 
            +
             | 
| 91 107 | 
             
              it "should be deleted" do
         | 
| 92 108 | 
             
                @eth.get_pad('another new pad').delete
         | 
| 93 109 | 
             
                @eth.create_pad('another new pad').id.should_not == nil
         | 
    
        metadata
    CHANGED
    
    | @@ -1,65 +1,84 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification
         | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: etherpad-lite
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
               | 
| 5 | 
            -
               | 
| 3 | 
            +
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            +
              prerelease: false
         | 
| 5 | 
            +
              segments: 
         | 
| 6 | 
            +
              - 0
         | 
| 7 | 
            +
              - 1
         | 
| 8 | 
            +
              - 0
         | 
| 9 | 
            +
              version: 0.1.0
         | 
| 6 10 | 
             
            platform: ruby
         | 
| 7 | 
            -
            authors:
         | 
| 11 | 
            +
            authors: 
         | 
| 8 12 | 
             
            - Jordan Hollinger
         | 
| 9 13 | 
             
            autorequire: 
         | 
| 10 14 | 
             
            bindir: bin
         | 
| 11 15 | 
             
            cert_chain: []
         | 
| 12 | 
            -
             | 
| 16 | 
            +
             | 
| 17 | 
            +
            date: 2012-07-07 00:00:00 -04:00
         | 
| 18 | 
            +
            default_executable: 
         | 
| 13 19 | 
             
            dependencies: []
         | 
| 20 | 
            +
             | 
| 14 21 | 
             
            description: etherpad-lite is a Ruby interface to Etherpad Lite's HTTP JSON API
         | 
| 15 22 | 
             
            email: jordan@jordanhollinger.com
         | 
| 16 23 | 
             
            executables: []
         | 
| 24 | 
            +
             | 
| 17 25 | 
             
            extensions: []
         | 
| 18 | 
            -
             | 
| 26 | 
            +
             | 
| 27 | 
            +
            extra_rdoc_files: 
         | 
| 19 28 | 
             
            - README.rdoc
         | 
| 20 | 
            -
            files:
         | 
| 29 | 
            +
            files: 
         | 
| 21 30 | 
             
            - lib/etherpad-lite.rb
         | 
| 31 | 
            +
            - lib/etherpad-lite/models.rb
         | 
| 32 | 
            +
            - lib/etherpad-lite/models/session.rb
         | 
| 22 33 | 
             
            - lib/etherpad-lite/models/padded.rb
         | 
| 23 | 
            -
            - lib/etherpad-lite/models/group.rb
         | 
| 24 | 
            -
            - lib/etherpad-lite/models/pad.rb
         | 
| 25 34 | 
             
            - lib/etherpad-lite/models/author.rb
         | 
| 26 35 | 
             
            - lib/etherpad-lite/models/instance.rb
         | 
| 27 | 
            -
            - lib/etherpad-lite/models/ | 
| 36 | 
            +
            - lib/etherpad-lite/models/pad.rb
         | 
| 37 | 
            +
            - lib/etherpad-lite/models/group.rb
         | 
| 28 38 | 
             
            - lib/etherpad-lite/client.rb
         | 
| 29 | 
            -
            - lib/etherpad-lite/ | 
| 30 | 
            -
            - spec/pad_spec.rb
         | 
| 31 | 
            -
            - spec/config.yml.example
         | 
| 32 | 
            -
            - spec/config.yml
         | 
| 39 | 
            +
            - lib/etherpad-lite/version.rb
         | 
| 33 40 | 
             
            - spec/spec_helper.rb
         | 
| 34 41 | 
             
            - spec/instance_spec.rb
         | 
| 35 42 | 
             
            - spec/session_spec.rb
         | 
| 36 | 
            -
            - spec/author_spec.rb
         | 
| 37 43 | 
             
            - spec/group_spec.rb
         | 
| 44 | 
            +
            - spec/config.yml
         | 
| 45 | 
            +
            - spec/config.yml.example
         | 
| 46 | 
            +
            - spec/author_spec.rb
         | 
| 47 | 
            +
            - spec/pad_spec.rb
         | 
| 38 48 | 
             
            - README.rdoc
         | 
| 39 49 | 
             
            - CHANGELOG
         | 
| 40 50 | 
             
            - LICENSE
         | 
| 51 | 
            +
            has_rdoc: true
         | 
| 41 52 | 
             
            homepage: http://github.com/jhollinger/ruby-etherpad-lite
         | 
| 42 53 | 
             
            licenses: []
         | 
| 54 | 
            +
             | 
| 43 55 | 
             
            post_install_message: 
         | 
| 44 56 | 
             
            rdoc_options: []
         | 
| 45 | 
            -
             | 
| 57 | 
            +
             | 
| 58 | 
            +
            require_paths: 
         | 
| 46 59 | 
             
            - lib
         | 
| 47 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 60 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 48 61 | 
             
              none: false
         | 
| 49 | 
            -
              requirements:
         | 
| 50 | 
            -
              - -  | 
| 51 | 
            -
                - !ruby/object:Gem::Version
         | 
| 52 | 
            -
                   | 
| 53 | 
            -
             | 
| 62 | 
            +
              requirements: 
         | 
| 63 | 
            +
              - - ">="
         | 
| 64 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 65 | 
            +
                  segments: 
         | 
| 66 | 
            +
                  - 0
         | 
| 67 | 
            +
                  version: "0"
         | 
| 68 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 54 69 | 
             
              none: false
         | 
| 55 | 
            -
              requirements:
         | 
| 56 | 
            -
              - -  | 
| 57 | 
            -
                - !ruby/object:Gem::Version
         | 
| 58 | 
            -
                   | 
| 70 | 
            +
              requirements: 
         | 
| 71 | 
            +
              - - ">="
         | 
| 72 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 73 | 
            +
                  segments: 
         | 
| 74 | 
            +
                  - 0
         | 
| 75 | 
            +
                  version: "0"
         | 
| 59 76 | 
             
            requirements: []
         | 
| 77 | 
            +
             | 
| 60 78 | 
             
            rubyforge_project: 
         | 
| 61 | 
            -
            rubygems_version: 1. | 
| 79 | 
            +
            rubygems_version: 1.3.7
         | 
| 62 80 | 
             
            signing_key: 
         | 
| 63 81 | 
             
            specification_version: 3
         | 
| 64 82 | 
             
            summary: A Ruby client library for Etherpad Lite
         | 
| 65 83 | 
             
            test_files: []
         | 
| 84 | 
            +
             |