syncano 4.0.0.alpha → 4.0.0.alpha1
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/README.md +43 -2
- data/lib/syncano/query_builder.rb +4 -0
- data/lib/syncano/resources/base.rb +6 -0
- data/lib/syncano/version.rb +1 -1
- data/spec/integration/syncano_spec.rb +4 -1
- 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: f06e086fb01f6bdd1a005c7ab4618d75babee13e
         | 
| 4 | 
            +
              data.tar.gz: b906104e4fa06db0cb09e3808d3fa924dcb8d5ce
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0174413a95cfca8ed8fc4c05409877a0ca76b2f623da5331374a46263e85a50acf38c6b5bb507fa991f2343f58b8ea6f9e0d71e6dbcfbdb9330bfcea4fd450f5
         | 
| 7 | 
            +
              data.tar.gz: ac1b5fc9689cac452c336462f7ca71d56b83c67da684e2149ba1ae40bca3c1a51e6a450ae12dc02e582023832a6f15813ab3a5e07b8187a72bc46b76602e8969
         | 
    
        data/README.md
    CHANGED
    
    | @@ -16,7 +16,7 @@ After installation, you have to set a path for api root for syncano. | |
| 16 16 | 
             
            If you want to use staging, export:
         | 
| 17 17 |  | 
| 18 18 | 
             
            ```bash
         | 
| 19 | 
            -
            $ export API_ROOT=https:// | 
| 19 | 
            +
            $ export API_ROOT=https://api.syncano.rocks
         | 
| 20 20 | 
             
            ```
         | 
| 21 21 |  | 
| 22 22 | 
             
            If you're less adventurous, use our production api servers:
         | 
| @@ -116,10 +116,51 @@ manually using the API, you can create a schedule to run them periodically, you | |
| 116 116 | 
             
            can create a Webhook (and optionally make it public) to run them from the web, 
         | 
| 117 117 | 
             
            you can create a trigger to run one after a class' object is created, updated or 
         | 
| 118 118 | 
             
            deleted. There are three runtimes available: Ruby, Python and Node. This gem is 
         | 
| 119 | 
            -
            available in Ruby runtime (just needs to be required).
         | 
| 119 | 
            +
            available in Ruby runtime (just needs to be required). Let's create a simple 
         | 
| 120 | 
            +
            codebox and run it. 
         | 
| 120 121 |  | 
| 122 | 
            +
            ```ruby
         | 
| 123 | 
            +
            clock = instance.codeboxes.create(name: 'clock', source: 'puts Time.now', runtime_name: 'ruby')
         | 
| 124 | 
            +
            #=> #<Syncano::Resources::CodeBox config: {}, created_at: Thu, 30 Apr 2015 05:50:09 +0000, description: "", id: 1, name: "clock", runtime_name: "ruby", source: "puts Time.now", updated_at: Thu, 30 Apr 2015 05:50:09 +0000>
         | 
| 125 | 
            +
            clock.run 
         | 
| 126 | 
            +
            #=> {"status"=>"pending", "links"=>{"self"=>"gv1/instances/a523b7e842dea927d8c306ec0a9a7a4ac30191c2cd034b11d/codeboxes/1/traces/1/"}, "executed_at"=>nil, "result"=>"", "duration"=>nil, "id"=>1}
         | 
| 127 | 
            +
            ```
         | 
| 128 | 
            +
             | 
| 129 | 
            +
            When you schedule a codebox run, it returns the trace. Immediately after the 
         | 
| 130 | 
            +
            call it's status is pending, so you need to check the trace. 
         | 
| 131 | 
            +
             | 
| 132 | 
            +
            ```ruby
         | 
| 133 | 
            +
            clock.traces.first
         | 
| 134 | 
            +
            => #<Syncano::Resources::CodeBoxTrace duration: 526, executed_at: Thu, 30 Apr 2015 05:25:14 +0000, id: 1, result: "2015-04-30 05:25:14 +0000", status: "success">
         | 
| 135 | 
            +
            ```
         | 
| 136 | 
            +
             | 
| 137 | 
            +
            The run method is asynchronous and returns immediately. You should use this to
         | 
| 138 | 
            +
            run codeboxes when you don't care about results at this very moment. If you 
         | 
| 139 | 
            +
            want to run the codebox and get results in one call, you should use webhooks.
         | 
| 140 | 
            +
             | 
| 141 | 
            +
            # Webhooks 
         | 
| 142 | 
            +
             | 
| 143 | 
            +
            You can use webhooks to run codeboxes synchronously. Webhooks can be either 
         | 
| 144 | 
            +
            public or private. You have to provide your API key when calling private ones, 
         | 
| 145 | 
            +
            public are public, you can call them with curl, connect with third party
         | 
| 146 | 
            +
            services,  etc. Ruby:
         | 
| 121 147 |  | 
| 122 148 |  | 
| 149 | 
            +
            ```ruby
         | 
| 150 | 
            +
            webhook = @instance.webhooks.create slug: 'clock-webhook', codebox: clock.primary_key, public: true
         | 
| 151 | 
            +
            #=> #<Syncano::Resources::Webhook codebox: 1, public: true, public_link: "a20b0ae122b53b2f2c445f6a7a202b274c3631ad", slug: "clock-webhook">
         | 
| 152 | 
            +
             | 
| 153 | 
            +
            webhook.run['result']
         | 
| 154 | 
            +
            #=> "2015-04-30 05:51:45 +0000"
         | 
| 155 | 
            +
            ```
         | 
| 156 | 
            +
             | 
| 157 | 
            +
            and curl
         | 
| 158 | 
            +
             | 
| 159 | 
            +
            ```bash
         | 
| 160 | 
            +
            $ curl "https://api.syncano.rocks/v1/instances//af248d3e8b92e6e7aaa42dfc41de80c66c90d620cbe3fcd19/webhooks/p/a20b0ae122b53b2f2c445f6a7a202b274c3631ad/"
         | 
| 161 | 
            +
            {"status": "success", "duration": 270, "result": "2015-04-30 06:11:08 +0000", "executed_at": "2015-04-30T06:11:08.607389Z"}
         | 
| 162 | 
            +
            ```
         | 
| 163 | 
            +
             | 
| 123 164 | 
             
            ## Contributing
         | 
| 124 165 |  | 
| 125 166 | 
             
            1. Fork it
         | 
| @@ -31,6 +31,10 @@ module Syncano | |
| 31 31 | 
             
                  resource_class.create(connection, scope_parameters, attributes)
         | 
| 32 32 | 
             
                end
         | 
| 33 33 |  | 
| 34 | 
            +
                def destroy(primary_key)
         | 
| 35 | 
            +
                  resource_class.destroy connection, scope_parameters, primary_key
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
             | 
| 34 38 | 
             
                def space(at, options = {})
         | 
| 35 39 | 
             
                  Syncano::Resources::Space.new(at, self, options)
         | 
| 36 40 | 
             
                end
         | 
| @@ -37,6 +37,12 @@ module Syncano | |
| 37 37 | 
             
                      new(connection, scope_parameters, attributes).save
         | 
| 38 38 | 
             
                    end
         | 
| 39 39 |  | 
| 40 | 
            +
                    def destroy(connection, scope_parameters, pk)
         | 
| 41 | 
            +
                      check_resource_method_existance! :destroy
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                      connection.request :delete, member_path(pk, scope_parameters)
         | 
| 44 | 
            +
                    end
         | 
| 45 | 
            +
             | 
| 40 46 | 
             
                    def map_attributes_values(attributes)
         | 
| 41 47 | 
             
                      attributes.each do |name, value|
         | 
| 42 48 | 
             
                        attributes[name] = value.to_json if value.is_a?(Array) || value.is_a?(Hash)
         | 
    
        data/lib/syncano/version.rb
    CHANGED
    
    
| @@ -78,7 +78,10 @@ describe Syncano do | |
| 78 78 | 
             
                  expect(object.ballance).to eq(54)
         | 
| 79 79 | 
             
                  expect(object.currency).to eq('GBP')
         | 
| 80 80 |  | 
| 81 | 
            -
                  expect { object. | 
| 81 | 
            +
                  expect { subject.destroy(object.primary_key) }.to destroy_resource
         | 
| 82 | 
            +
                  expect {
         | 
| 83 | 
            +
                    subject.destroy(object.primary_key)
         | 
| 84 | 
            +
                  }.to raise_error(Syncano::ClientError, /not found/i)
         | 
| 82 85 | 
             
                end
         | 
| 83 86 |  | 
| 84 87 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: syncano
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 4.0.0. | 
| 4 | 
            +
              version: 4.0.0.alpha1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Piotr Zadrożny
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2015- | 
| 12 | 
            +
            date: 2015-05-01 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: bundler
         |