twin 0.1.0 → 0.1.1

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.
Files changed (4) hide show
  1. data/lib/twin.rb +13 -3
  2. data/lib/twin/resources.rb +5 -5
  3. data/test/app.rb +1 -1
  4. metadata +3 -3
data/lib/twin.rb CHANGED
@@ -3,7 +3,9 @@ require 'active_support/core_ext/hash/conversions'
3
3
  require 'active_support/core_ext/hash/keys'
4
4
  require 'active_support/core_ext/hash/indifferent_access'
5
5
  require 'active_support/json'
6
- require 'active_support/core_ext/object/to_query'
6
+ # Active Support 2 doesn't have the following file, but it's OK
7
+ # since we already got the method from "hash/conversions"
8
+ require 'active_support/core_ext/object/to_query' unless {}.respond_to? :to_query
7
9
  require 'digest/md5'
8
10
 
9
11
  class Twin
@@ -39,9 +41,9 @@ class Twin
39
41
  if path != '/' and found = recognize_resource(path)
40
42
  block, matches = found
41
43
 
42
- # TODO: bail out early if authentication failed
43
44
  twin_token = env[AUTHORIZATION] =~ / oauth_token="(.+?)"/ && $1
44
45
  authenticated_user = twin_token && model.find_by_twin_token(twin_token)
46
+ return not_authenticated if twin_token and not authenticated_user
45
47
 
46
48
  clone = self.dup
47
49
  clone.request = Rack::Request.new env
@@ -83,7 +85,7 @@ class Twin
83
85
  }
84
86
  # later sent back as: oauth_token="..."
85
87
  else
86
- [400, {'Content-Type' => 'text/plain'}, ['Bad credentials']]
88
+ not_authenticated
87
89
  end
88
90
  end
89
91
 
@@ -120,6 +122,14 @@ class Twin
120
122
  [404, {'Content-Type' => 'text/plain'}, ['Not found']]
121
123
  end
122
124
 
125
+ def not_implemented
126
+ [501, {'Content-Type' => 'text/plain'}, ['Not implemented']]
127
+ end
128
+
129
+ def not_authenticated
130
+ [400, {'Content-Type' => 'text/plain'}, ['Not authenticated']]
131
+ end
132
+
123
133
  def normalize_statuses(statuses)
124
134
  statuses.map do |status|
125
135
  hash = convert_twin_hash(status)
@@ -1,6 +1,6 @@
1
1
  class Twin
2
2
  resource 'statuses/home_timeline' do
3
- statuses = self.model.statuses(params.with_indifferent_access)
3
+ statuses = self.model.statuses(params.with_indifferent_access, current_user)
4
4
  respond_with('statuses', normalize_statuses(statuses))
5
5
  end
6
6
 
@@ -73,6 +73,10 @@ class Twin
73
73
  respond_with('saved_searches', [])
74
74
  end
75
75
 
76
+ resource 'account/(settings|apple_push_destinations(/(destroy|device))?)' do
77
+ not_implemented
78
+ end
79
+
76
80
  DEFAULT_STATUS_PARAMS = {
77
81
  :id => nil,
78
82
  :text => "",
@@ -135,7 +139,3 @@ class Twin
135
139
  # :sender
136
140
  # :recipient
137
141
  end
138
-
139
- # POST /1/account/apple_push_destinations.xml
140
- # POST /1/account/apple_push_destinations/destroy.xml
141
- # GET /1/account/settings.xml
data/test/app.rb CHANGED
@@ -28,7 +28,7 @@ module Adapter
28
28
  user[:email]
29
29
  end
30
30
 
31
- def self.statuses(params)
31
+ def self.statuses(params, current_user)
32
32
  STATUSES
33
33
  end
34
34
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twin
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Mislav Marohni\xC4\x87"