driftrock-service 0.4.4 → 0.4.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.
@@ -12,13 +12,13 @@ module Driftrock::Service
12
12
  def self.set_instance(instance)
13
13
  @instance = instance
14
14
  end
15
+
15
16
  def self.instance
16
17
  @instance
17
18
  end
18
19
 
19
20
  def self.website_api(user, company)
20
21
  api = new(user, company)
21
- require_module_with_dir :driftrock_model
22
22
  api.extend(Driftrock::Service::Api::Website)
23
23
  api
24
24
  end
@@ -29,10 +29,8 @@ module Driftrock::Service
29
29
  api
30
30
  end
31
31
 
32
- def self.admin_api
33
- api = new
34
- api.extend(Driftrock::Service::Api::Admin)
35
- api
32
+ def self.admin_api(user)
33
+ new(user)
36
34
  end
37
35
 
38
36
  def self.puller_api
@@ -41,15 +39,5 @@ module Driftrock::Service
41
39
  api
42
40
  end
43
41
 
44
- private
45
- def self.require_module_with_dir(module_name)
46
- require "driftrock-service/#{module_name}"
47
- folder_glob = File.join(
48
- File.dirname(__FILE__), module_name.to_s, *%w[** *.rb])
49
- Dir[folder_glob].each do |file|
50
- require file
51
- end
52
- end
53
-
54
42
  end
55
43
  end
@@ -8,8 +8,7 @@ module Driftrock::Service
8
8
  token = params[:token]
9
9
  expected_token = token_for(timestamp, company_id)
10
10
  if token != expected_token
11
- redirect_to Driftrock::Service::Config.website_location+
12
- "?unauthorised=true"
11
+ redirect_to Driftrock::Service::Config.website_location + "?unauthorised=true"
13
12
  else
14
13
  session[:user_id] = params[:user_id]
15
14
  session[:company_id] = params[:company_id]
@@ -0,0 +1,14 @@
1
+ module Driftrock
2
+ module Admin
3
+ module DriftrockModel
4
+ class DriftrockApp
5
+ include ::Driftrock::Service::DriftrockModel
6
+ set_api_path "/admin/apps"
7
+
8
+ def self.update(id, app_data)
9
+ put_to_api_method.call("/#{id}", app_data)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,6 +1,7 @@
1
1
  module Driftrock::Service::DriftrockModel
2
2
  class Channel
3
3
  include Driftrock::Service::DriftrockModel
4
+
4
5
  set_api_path '/dashboard_api/channel'
5
6
  attr_reader :id, :profile_id, :company,
6
7
  :token, :refresh_token, :token_expiry,
@@ -2,10 +2,6 @@ module Driftrock::Service::DriftrockModel
2
2
  class DriftrockApp
3
3
  include Driftrock::Service::DriftrockModel
4
4
  set_api_path "/dashboard_api/driftrock_app"
5
- attr_reader :id, :name, :description, :long_description, :visible, :active,
6
- :logo, :url, :salt, :app_id, :api_token, :requires_twitter_data,
7
- :requires_facebook_data, :requires_adwords_data,
8
- :requires_conversion_data, :requires_user_data, :user_has_activated
9
5
 
10
6
  def activate
11
7
  post_to_api_method.call("/#{id}/activate")
@@ -54,9 +50,8 @@ module Driftrock::Service::DriftrockModel
54
50
  new(object_hash)
55
51
  end
56
52
 
57
- def self.all_apps
58
- array_of_app_hashes = get_from_api_method.call("/apps", {},
59
- '/dashboard_api/visitor')
53
+ def self.all_for_current_user
54
+ array_of_app_hashes = get_from_api_method.call("/apps_for_current_user")
60
55
  array_of_app_hashes.map do |app_hash|
61
56
  app_hash.symbolize_keys!
62
57
  new(app_hash)
@@ -0,0 +1,13 @@
1
+ module Driftrock
2
+ module Visitor
3
+ module DriftrockModel
4
+
5
+ class DriftrockApp
6
+ include ::Driftrock::Service::DriftrockModel
7
+ set_api_path "/dashboard_api/visitor/apps"
8
+ end
9
+
10
+ end
11
+ end
12
+
13
+ end
@@ -1,5 +1,6 @@
1
1
  module Driftrock::Service::DriftrockModel
2
- module ClassMethods
2
+
3
+ module DependencyInjection
3
4
  def set_post_to_api_method(method)
4
5
  @post_to_api_method = method
5
6
  end
@@ -7,7 +8,7 @@ module Driftrock::Service::DriftrockModel
7
8
  def set_put_to_api_method(method)
8
9
  @put_to_api_method = method
9
10
  end
10
-
11
+
11
12
  def set_get_from_api_method(method)
12
13
  @get_from_api_method = method
13
14
  end
@@ -21,36 +22,41 @@ module Driftrock::Service::DriftrockModel
21
22
  @put_to_api_method ||= self.public_method(:model_put)
22
23
  @put_to_api_method
23
24
  end
24
-
25
+
25
26
  def get_from_api_method
26
27
  @get_from_api_method ||= self.public_method(:model_get)
27
28
  @get_from_api_method
28
29
  end
30
+ end
29
31
 
30
- def set_api_path(path)
31
- @api_path = path
32
- end
33
-
34
- def api_path
35
- @api_path ||= "/"
36
- @api_path
37
- end
38
-
39
- def find(id)
32
+ module ActiveRecordSimulator
33
+ def find(id)
40
34
  object_hash = get_from_api_method.call("/#{id}")
41
- new(object_hash)
42
- end
35
+ new(object_hash)
36
+ end
43
37
 
44
- def all
45
- object_arr = get_from_api_method.call("/")
46
- object_arr.map do |object_hash|
38
+ def all
39
+ object_arr = get_from_api_method.call("/")
40
+ object_arr.map do |object_hash|
47
41
  new(object_hash)
48
- end
42
+ end
49
43
  end
50
44
 
51
45
  def create(data)
52
46
  post_to_api_method.call("/new", data)
53
47
  end
48
+ end
49
+
50
+ module ClassMethods
51
+
52
+ def set_api_path(path)
53
+ @api_path = path
54
+ end
55
+
56
+ def api_path
57
+ @api_path ||= "/"
58
+ @api_path
59
+ end
54
60
 
55
61
  def model_post(path, opts={}, root_path=api_path)
56
62
  post(root_path+path, opts)
@@ -64,10 +70,6 @@ module Driftrock::Service::DriftrockModel
64
70
  get(root_path+path, opts)
65
71
  end
66
72
 
67
- def model_name
68
- self.to_s.gsub(/.*\:\:/, "").downcase
69
- end
70
-
71
73
  end
72
74
 
73
75
  def initialize(object_hash)
@@ -78,11 +80,15 @@ module Driftrock::Service::DriftrockModel
78
80
  end
79
81
  object_hash.each do |(key, value)|
80
82
  instance_variable_set(("@"+key.to_s).to_sym, value)
83
+ instance_var_reader = lambda { instance_variable_get("@" + key.to_s) }
84
+ self.class.send(:define_method, key.to_s, instance_var_reader)
81
85
  end
82
86
  end
83
87
 
84
88
 
85
89
  def self.included(base)
90
+ base.extend DependencyInjection
91
+ base.extend ActiveRecordSimulator
86
92
  base.extend ClassMethods
87
93
  base.extend Driftrock::Service::Api
88
94
  base.send(:include, Driftrock::Service::Api)
@@ -91,9 +97,11 @@ module Driftrock::Service::DriftrockModel
91
97
  def get_from_api_method
92
98
  self.class.get_from_api_method
93
99
  end
100
+
94
101
  def post_to_api_method
95
102
  self.class.post_to_api_method
96
103
  end
104
+
97
105
  def put_to_api_method
98
106
  self.class.put_to_api_method
99
107
  end
@@ -1,5 +1,5 @@
1
1
  module Driftrock
2
2
  module Service
3
- VERSION = "0.4.4"
3
+ VERSION = "0.4.5"
4
4
  end
5
5
  end
@@ -4,7 +4,6 @@ require "driftrock-service/connector"
4
4
  require "driftrock-service/api"
5
5
  require "driftrock-service/api/website"
6
6
  require "driftrock-service/api/visitor"
7
- require "driftrock-service/api/admin"
8
7
  require "driftrock-service/api/data"
9
8
  require "driftrock-service/api/puller"
10
9
  require "driftrock-service/errors/driftrock_error"
@@ -12,6 +11,17 @@ require "driftrock-service/driftrock_logger"
12
11
  require "driftrock-service/driftrock_app"
13
12
  require "driftrock-service/driftrock_api"
14
13
 
14
+ require "driftrock-service/driftrock_model"
15
+ require "driftrock-service/driftrock_model/driftrock_app"
16
+
17
+ def require_all(directory_location)
18
+ folder_glob = File.join(File.dirname(__FILE__), directory_location, *%w[** *.rb])
19
+ Dir[folder_glob].each do |file|
20
+ require file
21
+ end
22
+ end
23
+
24
+ require_all "driftrock-service/driftrock_model"
15
25
 
16
26
  module Driftrock
17
27
  module Service
metadata CHANGED
@@ -1,49 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: driftrock-service
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.5
4
5
  prerelease:
5
- version: 0.4.4
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Max
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2013-06-05 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2013-06-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: httparty
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: rspec
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
30
33
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
35
38
  type: :development
36
- version_requirements: *id002
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
37
46
  description: Gem for talking to the driftrock api
38
- email:
47
+ email:
39
48
  - max.dupenois@forward.co.uk
40
49
  executables: []
41
-
42
50
  extensions: []
43
-
44
51
  extra_rdoc_files: []
45
-
46
- files:
52
+ files:
47
53
  - .gitignore
48
54
  - .rspec
49
55
  - Gemfile
@@ -53,7 +59,6 @@ files:
53
59
  - driftrock-service.gemspec
54
60
  - lib/driftrock-service.rb
55
61
  - lib/driftrock-service/api.rb
56
- - lib/driftrock-service/api/admin.rb
57
62
  - lib/driftrock-service/api/data.rb
58
63
  - lib/driftrock-service/api/puller.rb
59
64
  - lib/driftrock-service/api/visitor.rb
@@ -64,11 +69,13 @@ files:
64
69
  - lib/driftrock-service/driftrock_app.rb
65
70
  - lib/driftrock-service/driftrock_logger.rb
66
71
  - lib/driftrock-service/driftrock_model.rb
72
+ - lib/driftrock-service/driftrock_model/admin/driftrock_app.rb
67
73
  - lib/driftrock-service/driftrock_model/channel.rb
68
74
  - lib/driftrock-service/driftrock_model/channel_type.rb
69
75
  - lib/driftrock-service/driftrock_model/company.rb
70
76
  - lib/driftrock-service/driftrock_model/driftrock_app.rb
71
77
  - lib/driftrock-service/driftrock_model/user.rb
78
+ - lib/driftrock-service/driftrock_model/visitor/driftrock_app.rb
72
79
  - lib/driftrock-service/errors/driftrock_error.rb
73
80
  - lib/driftrock-service/version.rb
74
81
  - spec/models/channel_spec.rb
@@ -80,32 +87,29 @@ files:
80
87
  - spec/website_spec_helper.rb
81
88
  homepage: https://github.com/forward/driftrock-service
82
89
  licenses: []
83
-
84
90
  post_install_message:
85
91
  rdoc_options: []
86
-
87
- require_paths:
92
+ require_paths:
88
93
  - lib
89
- required_ruby_version: !ruby/object:Gem::Requirement
94
+ required_ruby_version: !ruby/object:Gem::Requirement
90
95
  none: false
91
- requirements:
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: "0"
95
- required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
101
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- version: "0"
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
101
106
  requirements: []
102
-
103
107
  rubyforge_project:
104
108
  rubygems_version: 1.8.24
105
109
  signing_key:
106
110
  specification_version: 3
107
111
  summary: Maintains the api endpoints and the calls to them with authorisation, etc.
108
- test_files:
112
+ test_files:
109
113
  - spec/models/channel_spec.rb
110
114
  - spec/models/channel_type_spec.rb
111
115
  - spec/models/company_spec.rb
@@ -1,23 +0,0 @@
1
- module Driftrock
2
- module Service
3
- module Api
4
- module Admin
5
- include Driftrock::Service::Api
6
-
7
- module URLs
8
- BASE = '/admin'
9
- APPS = BASE+'/apps'
10
- end
11
-
12
- def all_apps
13
- get(URLs::APPS)
14
- end
15
-
16
- def update_app(id, app_data)
17
- put(URLs::APPS + "/#{id}", app_data)
18
- end
19
-
20
- end
21
- end
22
- end
23
- end