parse-ruby-client 0.1.4 → 0.1.5
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/README.md +8 -1
- data/VERSION +1 -1
- data/lib/parse/client.rb +10 -0
- data/lib/parse/datatypes.rb +0 -4
- data/lib/parse/object.rb +8 -2
- data/parse-ruby-client.gemspec +4 -2
- data/test/config/global.json +14 -0
- data/test/test_init_from_cloud_code.rb +8 -0
- data/test/test_object.rb +10 -2
- metadata +5 -3
    
        data/README.md
    CHANGED
    
    | @@ -48,6 +48,14 @@ Parse.init | |
| 48 48 |  | 
| 49 49 | 
             
            The test folder assumes this naming convention for environment variables, so if you want to run the tests, you *must* do this. But it's easy. And good for you, too.
         | 
| 50 50 |  | 
| 51 | 
            +
            ### New: Load API keys from `global.json` created by Cloud Code
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            ```ruby
         | 
| 54 | 
            +
            Parse.init_from_cloud_code("path/to/global.json")
         | 
| 55 | 
            +
            ```
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            The path defaults to `"../config/global.json"`. So if you create a folder inside the root of a Cloud Code directory, and in that folder is a `.rb` file, just call `Parse.init_from_cloud_code` with no arguments and you're set.
         | 
| 58 | 
            +
             | 
| 51 59 | 
             
            ## Creating and Saving Objects
         | 
| 52 60 |  | 
| 53 61 | 
             
            Create an instance of ```Parse::Object``` with your class name supplied as a string, set some keys, and call ```save()```.
         | 
| @@ -133,7 +141,6 @@ params = {"foo" => "bar"} | |
| 133 141 | 
             
            function.call(params)
         | 
| 134 142 | 
             
            ```
         | 
| 135 143 |  | 
| 136 | 
            -
             | 
| 137 144 | 
             
            # TODO
         | 
| 138 145 |  | 
| 139 146 | 
             
            - Add some form of debug logging
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.1. | 
| 1 | 
            +
            0.1.5
         | 
    
        data/lib/parse/client.rb
    CHANGED
    
    | @@ -110,6 +110,16 @@ module Parse | |
| 110 110 | 
             
                @@client = Client.new(defaulted)
         | 
| 111 111 | 
             
              end
         | 
| 112 112 |  | 
| 113 | 
            +
              # A convenience method for using global.json
         | 
| 114 | 
            +
              def Parse.init_from_cloud_code(path="../config/global.json")
         | 
| 115 | 
            +
                global = JSON.parse(Object::File.open(path).read) # warning: toplevel constant File referenced by Parse::Object::File
         | 
| 116 | 
            +
                application_name = global["applications"]["_default"]["link"]
         | 
| 117 | 
            +
                application_id = global["applications"][application_name]["applicationId"]
         | 
| 118 | 
            +
                master_key = global["applications"][application_name]["masterKey"]
         | 
| 119 | 
            +
                Parse.init :application_id => application_id,
         | 
| 120 | 
            +
                           :master_key     => master_key
         | 
| 121 | 
            +
              end
         | 
| 122 | 
            +
             | 
| 113 123 | 
             
              # Used mostly for testing. Lets you delete the api key global vars.
         | 
| 114 124 | 
             
              def Parse.destroy
         | 
| 115 125 | 
             
                @@client = nil
         | 
    
        data/lib/parse/datatypes.rb
    CHANGED
    
    
    
        data/lib/parse/object.rb
    CHANGED
    
    | @@ -61,7 +61,7 @@ module Parse | |
| 61 61 | 
             
                def new?
         | 
| 62 62 | 
             
                  self["objectId"].nil?
         | 
| 63 63 | 
             
                end
         | 
| 64 | 
            -
             | 
| 64 | 
            +
             | 
| 65 65 | 
             
                def safe_json
         | 
| 66 66 | 
             
                  without_reserved = self.dup
         | 
| 67 67 | 
             
                  Protocol::RESERVED_KEYS.each { |k| without_reserved.delete(k) }
         | 
| @@ -103,7 +103,13 @@ module Parse | |
| 103 103 |  | 
| 104 104 | 
             
                def as_json(*a)
         | 
| 105 105 | 
             
                  Hash[self.map do |key, value|
         | 
| 106 | 
            -
                     | 
| 106 | 
            +
                    value = if value
         | 
| 107 | 
            +
                      value.respond_to?(:as_json) ? value.as_json : value
         | 
| 108 | 
            +
                    else
         | 
| 109 | 
            +
                      Protocol::DELETE_OP
         | 
| 110 | 
            +
                    end
         | 
| 111 | 
            +
             | 
| 112 | 
            +
                    [key, value]
         | 
| 107 113 | 
             
                  end]
         | 
| 108 114 | 
             
                end
         | 
| 109 115 |  | 
    
        data/parse-ruby-client.gemspec
    CHANGED
    
    | @@ -5,11 +5,11 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = "parse-ruby-client"
         | 
| 8 | 
            -
              s.version = "0.1. | 
| 8 | 
            +
              s.version = "0.1.5"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["Alan deLevie", "Adam Alpern"]
         | 
| 12 | 
            -
              s.date = "2012-10- | 
| 12 | 
            +
              s.date = "2012-10-14"
         | 
| 13 13 | 
             
              s.description = "A simple Ruby client for the parse.com REST API"
         | 
| 14 14 | 
             
              s.email = "adelevie@gmail.com"
         | 
| 15 15 | 
             
              s.extra_rdoc_files = [
         | 
| @@ -57,11 +57,13 @@ Gem::Specification.new do |s| | |
| 57 57 | 
             
                "pkg/parse-ruby-client-1-0.0.1.gem",
         | 
| 58 58 | 
             
                "pkg/parse-ruby-client.gem",
         | 
| 59 59 | 
             
                "test/cloud_functions/MyCloudCode/cloud/main.js",
         | 
| 60 | 
            +
                "test/config/global.json",
         | 
| 60 61 | 
             
                "test/helper.rb",
         | 
| 61 62 | 
             
                "test/test_client.rb",
         | 
| 62 63 | 
             
                "test/test_cloud.rb",
         | 
| 63 64 | 
             
                "test/test_datatypes.rb",
         | 
| 64 65 | 
             
                "test/test_init.rb",
         | 
| 66 | 
            +
                "test/test_init_from_cloud_code.rb",
         | 
| 65 67 | 
             
                "test/test_object.rb",
         | 
| 66 68 | 
             
                "test/test_push.rb",
         | 
| 67 69 | 
             
                "test/test_query.rb",
         | 
    
        data/test/test_object.rb
    CHANGED
    
    | @@ -25,7 +25,7 @@ class TestObject < Test::Unit::TestCase | |
| 25 25 | 
             
              end
         | 
| 26 26 |  | 
| 27 27 | 
             
              def test_pointer
         | 
| 28 | 
            -
                VCR.use_cassette('test_pointer', :record => :new_episodes) do | 
| 28 | 
            +
                VCR.use_cassette('test_pointer', :record => :new_episodes) do
         | 
| 29 29 | 
             
                  post = Parse::Object.new "Post"
         | 
| 30 30 | 
             
                  assert_nil post.pointer
         | 
| 31 31 |  | 
| @@ -89,11 +89,19 @@ class TestObject < Test::Unit::TestCase | |
| 89 89 | 
             
                end
         | 
| 90 90 | 
             
              end
         | 
| 91 91 |  | 
| 92 | 
            +
              def test_deep_as_json
         | 
| 93 | 
            +
                VCR.use_cassette('test_deep_as_json', :record => :new_episodes) do
         | 
| 94 | 
            +
                  other = Parse::Object.new "Post"
         | 
| 95 | 
            +
                  other['date'] = Parse::Date.new(DateTime.now)
         | 
| 96 | 
            +
                  assert other.as_json['date']['iso']
         | 
| 97 | 
            +
                end
         | 
| 98 | 
            +
              end
         | 
| 99 | 
            +
             | 
| 92 100 | 
             
              def test_nils_delete_keys
         | 
| 93 101 | 
             
                VCR.use_cassette('test_nils_delete_keys', :record => :new_episodes) do
         | 
| 94 102 | 
             
                  post = Parse::Object.new "Post"
         | 
| 95 103 | 
             
                  post["title"] = "hello"
         | 
| 96 | 
            -
                  post.save | 
| 104 | 
            +
                  post.save
         | 
| 97 105 | 
             
                  post["title"] = nil
         | 
| 98 106 | 
             
                  post.save
         | 
| 99 107 | 
             
                  assert_false post.refresh.keys.include?("title")
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: parse-ruby-client
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.5
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2012-10- | 
| 13 | 
            +
            date: 2012-10-14 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: patron
         | 
| @@ -204,11 +204,13 @@ files: | |
| 204 204 | 
             
            - pkg/parse-ruby-client-1-0.0.1.gem
         | 
| 205 205 | 
             
            - pkg/parse-ruby-client.gem
         | 
| 206 206 | 
             
            - test/cloud_functions/MyCloudCode/cloud/main.js
         | 
| 207 | 
            +
            - test/config/global.json
         | 
| 207 208 | 
             
            - test/helper.rb
         | 
| 208 209 | 
             
            - test/test_client.rb
         | 
| 209 210 | 
             
            - test/test_cloud.rb
         | 
| 210 211 | 
             
            - test/test_datatypes.rb
         | 
| 211 212 | 
             
            - test/test_init.rb
         | 
| 213 | 
            +
            - test/test_init_from_cloud_code.rb
         | 
| 212 214 | 
             
            - test/test_object.rb
         | 
| 213 215 | 
             
            - test/test_push.rb
         | 
| 214 216 | 
             
            - test/test_query.rb
         | 
| @@ -228,7 +230,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 228 230 | 
             
                  version: '0'
         | 
| 229 231 | 
             
                  segments:
         | 
| 230 232 | 
             
                  - 0
         | 
| 231 | 
            -
                  hash:  | 
| 233 | 
            +
                  hash: 2994353426493104333
         | 
| 232 234 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 233 235 | 
             
              none: false
         | 
| 234 236 | 
             
              requirements:
         |