ruby-carrot 0.6.5 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/ruby-carrot.rb +85 -10
  2. metadata +11 -11
@@ -1,3 +1,9 @@
1
+ # Author:: Jorge Vargas (mailto:jorge.vargas@voicebunny.com)
2
+ # Copyright:: Copyright (c) 2008 Torrenegra IP, LLC.
3
+ # License:: Distributed under Creative Commons CC-BY license http://creativecommons.org/licenses/by/3.0/
4
+
5
+ # This module hace the class that handle the connection
6
+ # to the VoiceBunny API
1
7
 
2
8
  module RubyCarrot
3
9
  class VBCarrot
@@ -10,6 +16,7 @@ module RubyCarrot
10
16
  @api_user = nil
11
17
  @api_key = nil
12
18
 
19
+ # Initializes the carrot and save the account information on class variables
13
20
  def initialize(user, id, key)
14
21
  @api_id = id
15
22
  @api_user = user
@@ -18,6 +25,7 @@ module RubyCarrot
18
25
  setup
19
26
  end
20
27
 
28
+ # Setup the connection to the API using Faraday, and saves the connection object in a class variable
21
29
  def setup
22
30
  @conn = Faraday.new(:url =>("https://"+ @api_id.to_s+":"+@api_key +"@"+API_BASE_URL),:ssl => {:verify => false}) do |builder|
23
31
  builder.use Faraday::Request::Multipart
@@ -27,72 +35,139 @@ module RubyCarrot
27
35
  end
28
36
  end
29
37
 
38
+ # Returns the balance of the user initialized
30
39
  def balance
31
40
  resp = @conn.get 'balance.json'
32
41
  resp.body
33
42
  end
34
43
 
44
+ # Returns the projects created by the user initialized
35
45
  def all_projects
36
46
  resp = @conn.get 'projects.json'
37
47
  resp.body
38
48
  end
39
49
 
50
+ # Return the project with the specified ID
40
51
  def get_project(id)
41
52
  resp = @conn.get 'projects/'+id.to_s+'.json'
42
53
  resp.body
43
54
  end
44
55
 
56
+ # Create a project given a hashtable with the project information
45
57
  def create_project(project)
46
- resp = @conn.post 'projects/add.json', {
58
+ resp = @conn.post 'projects/addSpeedy.json', {
47
59
  title: project[:title],
48
60
  script: project[:script],
49
- rewardAmount: project[:rewardAmount],
61
+ price: project[:price],
50
62
  genderAndAge: project[:genderAndAge],
51
63
  language: project[:language],
52
64
  lifetime: project[:lifetime],
53
65
  ping: project[:ping],
54
66
  test: project[:test],
55
- rewardCurrency: project[:rewardCurrency],
56
- specialInstructions: project[:specialInstructions]
67
+ currency: project[:currency],
68
+ remarks: project[:remarks],
69
+ timedRecording: project[:timedRecording]
57
70
  }
58
71
 
59
72
  resp.body
60
73
  end
61
74
 
75
+ # Create a booking project for a certain user
76
+ def create_booking_project(project)
77
+ resp = @conn.post 'projects/addBooking.json', {
78
+ title: project[:title],
79
+ script: project[:script],
80
+ talentID: project[:talentID],
81
+ genderAndAge: project[:genderAndAge],
82
+ language: project[:language],
83
+ lifetime: project[:lifetime],
84
+ ping: project[:ping],
85
+ test: project[:test],
86
+ currency: project[:currency],
87
+ remarks: project[:remarks],
88
+ timedRecording: project[:timedRecording]
89
+ }
90
+
91
+ resp.body
92
+ end
93
+
94
+ # Dispose the project with the specified ID
62
95
  def force_dispose(id)
63
96
  resp = @conn.get 'projects/forceDispose/'+id.to_s+'.json'
64
97
  resp.body
65
98
  end
66
99
 
67
- def quote(text, contest=0, maxContestEntries=3)
68
- resp = @conn.post 'projects/quote.json', {
69
- script: text,
70
- contest: contest,
71
- maxContestEntries: maxContestEntries
72
- }
100
+ # Returns the suggested amount of money, of a a project with the given script
101
+ def quote(params)
102
+ data = Hash.new
103
+ data[:language] = params[:language]
104
+ data[:fulfilmentType] = params[:fulfilmentType]
105
+ data[:maxEntries] = params[:maxEntries]
106
+ data[:talentID] = params[:talentID]
107
+ if params.has_key?('numberOfCharacters')
108
+ data[:numberOfCharacters] = params[:numberOfCharacters]
109
+ elsif params.has_key?('numberOfWords')
110
+ data[:numberOfWords] = params[:numberOfWords]
111
+ else
112
+ data[:script] = params[:script]
113
+ end
114
+ resp = @conn.post 'projects/quote.json', data
73
115
  resp.body
74
116
  end
75
117
 
118
+ # Returns the read with the specified ID
76
119
  def get_read(id)
77
120
  resp = @conn.get 'reads/'+id.to_s+'.json'
78
121
  resp.body
79
122
  end
80
123
 
124
+ # Approve the read with the specified ID
81
125
  def approve_read(id)
82
126
  resp = @conn.get 'reads/approve/'+id.to_s+'.json'
83
127
  resp.body
84
128
  end
85
129
 
130
+ # Reject the read with the specified ID
86
131
  def reject_read(id)
87
132
  resp = @conn.get 'reads/reject/'+id.to_s+'.json'
88
133
  resp.body
89
134
  end
90
135
 
136
+ # Quote how much a revision of a given read cost
137
+ def revision_quote(readId, params)
138
+ data = Hash.new
139
+ data[:voiceBunnyError] = params[:voiceBunnyError]
140
+ if params.has_key?('charactersAddedOrChanged')
141
+ data[:charactersAddedOrChanged] = params[:charactersAddedOrChanged]
142
+ else
143
+ data[:wordsAddedOrChanged] = params[:wordsAddedOrChanged]
144
+ end
145
+ resp = @conn.get 'reads/'+readId.to_s+'/revision/quote.json', data
146
+ resp.body
147
+ end
148
+
149
+ # Request a revision for a given read
150
+ def revision_add(readId, params)
151
+ data = Hash.new
152
+ data[:ping] = params[:ping]
153
+ data[:instructions] = params[:instructions]
154
+ data[:voiceBunnyError] = params[:voiceBunnyError]
155
+ if params.has_key?('charactersAddedOrChanged')
156
+ data[:charactersAddedOrChanged] = params[:charactersAddedOrChanged]
157
+ else
158
+ data[:wordsAddedOrChanged] = params[:wordsAddedOrChanged]
159
+ end
160
+ resp = @conn.get 'reads/'+readId.to_s+'/revision/add.json', data
161
+ resp.body
162
+ end
163
+
164
+ # Return a list of all the languages supported by the service
91
165
  def languages
92
166
  resp = @conn.get 'languages.json'
93
167
  resp.body
94
168
  end
95
169
 
170
+ # Return a list of all the gender and ages supported by the service
96
171
  def gender_ages
97
172
  resp = @conn.get 'genderAndAges.json'
98
173
  resp.body
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-carrot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.7.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,33 +10,33 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-06 00:00:00.000000000 Z
13
+ date: 2012-09-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
17
- requirement: &18496488 !ruby/object:Gem::Requirement
17
+ requirement: &3180312 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.7.6
22
+ version: 0.8.4
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *18496488
25
+ version_requirements: *3180312
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: faraday_middleware
28
- requirement: &18489264 !ruby/object:Gem::Requirement
28
+ requirement: &3179196 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.8.4
33
+ version: 0.8.8
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *18489264
36
+ version_requirements: *3179196
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: test/unit
39
- requirement: &18487572 !ruby/object:Gem::Requirement
39
+ requirement: &3178332 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,9 +44,9 @@ dependencies:
44
44
  version: 2.4.5
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *18487572
47
+ version_requirements: *3178332
48
48
  description: VoiceBunny library for accessing API using Ruby.
49
- email: jorge.vargas@voicebunny.com
49
+ email: api@voicebunny.com
50
50
  executables: []
51
51
  extensions: []
52
52
  extra_rdoc_files: []