apidone-client 0.0.2 → 0.0.3

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.
File without changes
@@ -10,6 +10,6 @@ module Apidone
10
10
 
11
11
  autoload :CLI, 'apidone-client/cli.rb'
12
12
  autoload :Connection, 'apidone-client/connection.rb'
13
-
13
+ autoload :Resource, 'apidone-client/resource.rb'
14
14
  end
15
15
  end
@@ -27,7 +27,7 @@ module Apidone
27
27
  method_option :domain, :aliases => "-d", :desc => "set domain", :required => true
28
28
  def create(resource)
29
29
  connection(options[:domain])
30
- puts @c.create(resource, options[:data])
30
+ puts @c.create(resource, options[:data]).data
31
31
  end
32
32
 
33
33
  map %w(--update -u) => 'update'
@@ -37,7 +37,7 @@ module Apidone
37
37
  method_option :id, :desc => "set id", :required => true
38
38
  def update(resource)
39
39
  connection(options[:domain])
40
- puts @c.update(resource, options[:id], options[:data])
40
+ puts @c.update(resource, options[:id], options[:data]).data
41
41
  end
42
42
 
43
43
  map %w(--destroy -d) => 'delete'
@@ -55,7 +55,9 @@ module Apidone
55
55
  method_option :domain, :aliases => "-d", :desc => "set domain", :required => true
56
56
  def list(resource)
57
57
  connection(options[:domain])
58
- puts @c.list(resource)
58
+ @c.list(resource).each do |res|
59
+ puts res.data
60
+ end
59
61
  end
60
62
 
61
63
  map %w(--show -s) => 'show'
@@ -64,7 +66,7 @@ module Apidone
64
66
  method_option :id, :desc => "set id", :required => true
65
67
  def show(resource)
66
68
  connection(options[:domain])
67
- puts @c.show(resource, options[:id])
69
+ puts @c.show(resource, options[:id]).data
68
70
  end
69
71
 
70
72
  end
@@ -22,32 +22,30 @@ module Apidone
22
22
 
23
23
  def create(name, data = {})
24
24
  response = @conn.post "/#{name}", data
25
-
26
25
  if response.status == 201
27
26
  json_response = JSON.parse(response.body)
28
27
  data[:id] = json_response["id"]
29
28
  end
30
- data
29
+ show(name, data[:id])
31
30
  end
32
31
 
33
32
  def update(name, id, data = {})
34
33
  response = @conn.put "/#{name}/#{id}", data
35
-
36
34
  if response.status == 201
37
35
  json_response = JSON.parse(response.body)
38
36
  end
39
-
40
- data
37
+ Apidone::Client::Resource.new data
41
38
  end
42
39
 
43
40
  def list(name)
44
41
  response = @conn.get "/#{name}"
45
- JSON.parse response.body
42
+ collection = JSON.parse response.body
43
+ collection.collect{|o| Apidone::Client::Resource.new(o)}
46
44
  end
47
45
 
48
46
  def show(name, id)
49
47
  response = @conn.get("/#{name}/#{id}")
50
- JSON.parse response.body
48
+ Apidone::Client::Resource.new(JSON.parse response.body)
51
49
  end
52
50
 
53
51
  def delete(name , id)
@@ -0,0 +1,24 @@
1
+ module Apidone
2
+ module Client
3
+ class Resource
4
+
5
+ attr_reader :data
6
+ def initialize(data ={})
7
+ @data = data
8
+ meta_fields(data)
9
+ end
10
+
11
+ private
12
+ def meta_fields(data)
13
+ data.keys.each do |key|
14
+ instance_eval <<-RUBY
15
+ def #{key}
16
+ "#{data[key]}"
17
+ end
18
+ RUBY
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -1,5 +1,5 @@
1
1
  module Apidone
2
2
  module Client
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -16,7 +16,7 @@ describe "Connection" do
16
16
  end
17
17
 
18
18
  it "should be hash" do
19
- @response.class.should == Hash
19
+ @response.class.should == Apidone::Client::Resource
20
20
  end
21
21
 
22
22
  it "should not be blank" do
@@ -29,15 +29,15 @@ describe "Connection" do
29
29
  before :each do
30
30
  @list = @c.list("lenguajes")
31
31
  @rand_num = rand(100)
32
- @response = @c.update("lenjuages", "#{@list.first[:id]}", data = {:age=>@rand_num})
32
+ @response = @c.update("lenjuages", "#{@list.first.id}", data = {:age=> @rand_num })
33
33
  end
34
34
 
35
35
  it "response should be hash" do
36
- @response.class.should == Hash
36
+ @response.class.should == Apidone::Client::Resource
37
37
  end
38
38
 
39
39
  it "response should id" do
40
- @response[:age].should == @rand_num
40
+ @response.age.to_i.should == @rand_num
41
41
  end
42
42
 
43
43
  end
@@ -45,7 +45,7 @@ describe "Connection" do
45
45
  describe "when delete reosurce" do
46
46
  before :each do
47
47
  @list = @c.list("lenguajes")
48
- @id = @list.last["id"]
48
+ @id = @list.last.id
49
49
  @deleted= @c.delete("lenguajes", @id )
50
50
  end
51
51
 
@@ -55,7 +55,7 @@ describe "Connection" do
55
55
 
56
56
  it "should not include the id" do
57
57
  @list = @c.list("lenguajes")
58
- @list.map{|o| o["id"]}.should_not include(@id)
58
+ @list.map{ |o| o.id }.should_not include(@id)
59
59
  end
60
60
 
61
61
  end
@@ -63,12 +63,12 @@ describe "Connection" do
63
63
  describe "when show resource" do
64
64
  before :each do
65
65
  @list = @c.list("lenguajes")
66
- @id = @list.last["id"]
66
+ @id = @list.last.id
67
67
  @resource = @c.show("lenguajes", @id )
68
68
  end
69
69
 
70
70
  it "should find something" do
71
- @resource.should_not be_empty
71
+ @resource.should_not be_nil
72
72
  end
73
73
  end
74
74
 
@@ -0,0 +1,14 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Resource" do
4
+ before :each do
5
+ @resource = Apidone::Client::Resource.new({:name=>"mike", :id=>"134234", :age=>23})
6
+ end
7
+
8
+ it "should have created methods" do
9
+ @resource.methods.include?("name".to_sym).should be_true
10
+ @resource.methods.include?("id".to_sym).should be_true
11
+ @resource.methods.include?("age".to_sym).should be_true
12
+ end
13
+
14
+ end
metadata CHANGED
@@ -1,108 +1,83 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: apidone-client
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Miguel Michelson
14
9
  - Luis Mancilla
15
10
  - Daniel Guajardo
16
- - "Daniel Guti\xC3\xA9rrez"
11
+ - Daniel Gutiérrez
17
12
  - Magno Cardona
18
13
  autorequire:
19
14
  bindir: bin
20
15
  cert_chain: []
21
-
22
- date: 2012-10-18 00:00:00 Z
23
- dependencies:
24
- - !ruby/object:Gem::Dependency
16
+ date: 2012-10-23 00:00:00.000000000 Z
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
25
19
  name: thor
26
- prerelease: false
27
- requirement: &id001 !ruby/object:Gem::Requirement
20
+ requirement: &70290391062860 !ruby/object:Gem::Requirement
28
21
  none: false
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- hash: 3
33
- segments:
34
- - 0
35
- version: "0"
22
+ requirements:
23
+ - - ! '>='
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
36
26
  type: :runtime
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- name: faraday
40
27
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ version_requirements: *70290391062860
29
+ - !ruby/object:Gem::Dependency
30
+ name: faraday
31
+ requirement: &70290391062360 !ruby/object:Gem::Requirement
42
32
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- hash: 3
47
- segments:
48
- - 0
49
- version: "0"
33
+ requirements:
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
50
37
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: json
54
38
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ version_requirements: *70290391062360
40
+ - !ruby/object:Gem::Dependency
41
+ name: json
42
+ requirement: &70290391061720 !ruby/object:Gem::Requirement
56
43
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
64
48
  type: :runtime
65
- version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: bundler
68
49
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ version_requirements: *70290391061720
51
+ - !ruby/object:Gem::Dependency
52
+ name: bundler
53
+ requirement: &70290391061080 !ruby/object:Gem::Requirement
70
54
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
78
59
  type: :development
79
- version_requirements: *id004
80
- - !ruby/object:Gem::Dependency
81
- name: rspec
82
60
  prerelease: false
83
- requirement: &id005 !ruby/object:Gem::Requirement
61
+ version_requirements: *70290391061080
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: &70290391060220 !ruby/object:Gem::Requirement
84
65
  none: false
85
- requirements:
66
+ requirements:
86
67
  - - ~>
87
- - !ruby/object:Gem::Version
88
- hash: 23
89
- segments:
90
- - 2
91
- - 6
92
- - 0
68
+ - !ruby/object:Gem::Version
93
69
  version: 2.6.0
94
70
  type: :development
95
- version_requirements: *id005
71
+ prerelease: false
72
+ version_requirements: *70290391060220
96
73
  description: Apidone.com ruby api client
97
- email:
74
+ email:
98
75
  - miguelmichelson@gmail.com
99
- executables:
76
+ executables:
100
77
  - apidone
101
78
  extensions: []
102
-
103
79
  extra_rdoc_files: []
104
-
105
- files:
80
+ files:
106
81
  - .gitignore
107
82
  - Gemfile
108
83
  - LICENSE.txt
@@ -113,42 +88,37 @@ files:
113
88
  - lib/apidone-client.rb
114
89
  - lib/apidone-client/cli.rb
115
90
  - lib/apidone-client/connection.rb
91
+ - lib/apidone-client/resource.rb
116
92
  - lib/apidone-client/version.rb
117
93
  - spec/apidone-client/connection_spec.rb
94
+ - spec/apidone-client/resource_spec.rb
118
95
  - spec/spec_helper.rb
119
96
  homepage: http://apidone.com
120
97
  licenses: []
121
-
122
98
  post_install_message:
123
99
  rdoc_options: []
124
-
125
- require_paths:
100
+ require_paths:
126
101
  - lib
127
- required_ruby_version: !ruby/object:Gem::Requirement
102
+ required_ruby_version: !ruby/object:Gem::Requirement
128
103
  none: false
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- hash: 3
133
- segments:
134
- - 0
135
- version: "0"
136
- required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
109
  none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- hash: 3
142
- segments:
143
- - 0
144
- version: "0"
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
145
114
  requirements: []
146
-
147
115
  rubyforge_project:
148
- rubygems_version: 1.8.6
116
+ rubygems_version: 1.8.15
149
117
  signing_key:
150
118
  specification_version: 3
151
- summary: Apidone ruby client is a simple client for apidone.com, this library was made in the context of coding (ruby) dojo. oct 2012
152
- test_files:
119
+ summary: Apidone ruby client is a simple client for apidone.com, this library was
120
+ made in the context of coding (ruby) dojo. oct 2012
121
+ test_files:
153
122
  - spec/apidone-client/connection_spec.rb
123
+ - spec/apidone-client/resource_spec.rb
154
124
  - spec/spec_helper.rb