dailycred 0.1.2 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/Gemfile +14 -2
- data/Guardfile +15 -0
- data/README.md +159 -33
- data/Rakefile +30 -0
- data/app/controllers/sessions_controller.rb +31 -0
- data/app/views/sessions/info.html.erb +13 -0
- data/config/routes.rb +7 -0
- data/dailycred.gemspec +4 -3
- data/docs/lib/dailycred/acts_as_dailycred.html +42 -0
- data/docs/lib/dailycred/client.html +214 -0
- data/docs/lib/dailycred/engine.html +112 -0
- data/docs/lib/dailycred/helper.html +125 -0
- data/docs/lib/dailycred/middleware.html +42 -0
- data/docs/lib/dailycred/tests_helper.html +42 -0
- data/docs/lib/dailycred/user.html +133 -0
- data/docs/lib/dailycred.html +42 -0
- data/docs/lib/generators/dailycred_generator.html +42 -0
- data/docs/lib/generators/templates/migration_create_user.html +39 -0
- data/docs/lib/generators/templates/omniauth.html +71 -0
- data/docs/lib/generators/templates/sessions_controller.html +96 -0
- data/docs/lib/generators/templates/user.html +42 -0
- data/docs/lib/middleware/middleware.html +38 -0
- data/docs/lib/omniauth/strategies/dailycred.html +199 -0
- data/docs/lib/omniauth-dailycred/version.html +38 -0
- data/docs/lib/user/user.html +129 -0
- data/dummy/.gitignore +15 -0
- data/dummy/Gemfile +55 -0
- data/dummy/Guardfile +31 -0
- data/dummy/README.rdoc +261 -0
- data/dummy/Rakefile +7 -0
- data/dummy/app/assets/images/rails.png +0 -0
- data/dummy/app/assets/javascripts/application.js +15 -0
- data/dummy/app/assets/javascripts/posts.js.coffee +3 -0
- data/dummy/app/assets/stylesheets/application.css +13 -0
- data/dummy/app/assets/stylesheets/posts.css.scss +3 -0
- data/dummy/app/assets/stylesheets/scaffolds.css.scss +69 -0
- data/dummy/app/controllers/application_controller.rb +16 -0
- data/dummy/app/controllers/posts_controller.rb +85 -0
- data/dummy/app/helpers/application_helper.rb +2 -0
- data/dummy/app/helpers/posts_helper.rb +2 -0
- data/dummy/app/mailers/.gitkeep +0 -0
- data/dummy/app/models/.gitkeep +0 -0
- data/dummy/app/models/post.rb +3 -0
- data/dummy/app/models/user.rb +3 -0
- data/dummy/app/views/layouts/application.html.erb +14 -0
- data/dummy/app/views/posts/_form.html.erb +21 -0
- data/dummy/app/views/posts/edit.html.erb +6 -0
- data/dummy/app/views/posts/index.html.erb +23 -0
- data/dummy/app/views/posts/new.html.erb +5 -0
- data/dummy/app/views/posts/show.html.erb +10 -0
- data/dummy/config/application.rb +62 -0
- data/dummy/config/boot.rb +6 -0
- data/dummy/config/database.yml +25 -0
- data/dummy/config/environment.rb +5 -0
- data/dummy/config/environments/development.rb +37 -0
- data/dummy/config/environments/production.rb +67 -0
- data/dummy/config/environments/test.rb +37 -0
- data/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/dummy/config/initializers/inflections.rb +15 -0
- data/dummy/config/initializers/mime_types.rb +5 -0
- data/dummy/config/initializers/omniauth.rb +13 -0
- data/dummy/config/initializers/secret_token.rb +7 -0
- data/dummy/config/initializers/session_store.rb +8 -0
- data/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/dummy/config/locales/en.yml +5 -0
- data/dummy/config/routes.rb +61 -0
- data/dummy/config.ru +4 -0
- data/dummy/db/migrate/20120925172903_create_users.rb +68 -0
- data/dummy/db/migrate/20120926012555_create_posts.rb +9 -0
- data/dummy/db/migrate/20121002192037_update_users_2.rb +70 -0
- data/dummy/db/schema.rb +45 -0
- data/dummy/db/seeds.rb +7 -0
- data/dummy/lib/assets/.gitkeep +0 -0
- data/dummy/lib/tasks/.gitkeep +0 -0
- data/dummy/log/.gitkeep +0 -0
- data/dummy/public/404.html +26 -0
- data/dummy/public/422.html +26 -0
- data/dummy/public/500.html +25 -0
- data/dummy/public/favicon.ico +0 -0
- data/dummy/public/index.html +241 -0
- data/dummy/public/robots.txt +5 -0
- data/dummy/script/rails +6 -0
- data/dummy/test/fixtures/.gitkeep +0 -0
- data/dummy/test/fixtures/posts.yml +7 -0
- data/dummy/test/fixtures/users.yml +3 -0
- data/dummy/test/functional/.gitkeep +0 -0
- data/dummy/test/functional/posts_controller_test.rb +51 -0
- data/dummy/test/integration/.gitkeep +0 -0
- data/dummy/test/performance/browsing_test.rb +12 -0
- data/dummy/test/test_helper.rb +62 -0
- data/dummy/test/unit/.gitkeep +0 -0
- data/dummy/test/unit/helpers/posts_helper_test.rb +4 -0
- data/dummy/test/unit/post_test.rb +7 -0
- data/dummy/test/unit/user_test.rb +77 -0
- data/dummy/vendor/assets/javascripts/.gitkeep +0 -0
- data/dummy/vendor/assets/stylesheets/.gitkeep +0 -0
- data/dummy/vendor/plugins/.gitkeep +0 -0
- data/lib/dailycred/acts_as_dailycred.rb +87 -0
- data/lib/dailycred/client.rb +105 -0
- data/lib/dailycred/engine.rb +52 -0
- data/lib/dailycred/helper.rb +60 -0
- data/lib/{middleware → dailycred}/middleware.rb +25 -15
- data/lib/dailycred/tests_helper.rb +5 -0
- data/lib/dailycred/user.rb +63 -0
- data/lib/dailycred.rb +1 -79
- data/lib/generators/dailycred_generator.rb +94 -44
- data/lib/generators/templates/info.html.erb +1 -1
- data/lib/generators/templates/login.html.erb +13 -0
- data/lib/generators/templates/migration_create_user.rb +60 -10
- data/lib/generators/templates/omniauth.rb +6 -17
- data/lib/generators/templates/sessions_controller.rb +8 -2
- data/lib/generators/templates/user.rb +1 -23
- data/lib/omniauth/strategies/dailycred.rb +37 -20
- data/script/download_info.rb +11 -0
- data/spec/{spec_helper.rb → helper_spec.rb} +4 -2
- data/spec/omniauth/strategies/dailycred_spec.rb +52 -10
- data/spec/support/dailycred_spec.rb +72 -0
- data/spec/support/shared_examples.rb +40 -0
- data/test/generator_test.rb +85 -0
- data/test/test_helper.rb +6 -0
- metadata +116 -8
- data/lib/omniauth-dailycred/version.rb +0 -5
@@ -0,0 +1,214 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>client.rb</title>
|
6
|
+
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div id='container'>
|
10
|
+
<div id="background"></div>
|
11
|
+
<div id="jump_to">
|
12
|
+
Jump To …
|
13
|
+
<div id="jump_wrapper">
|
14
|
+
<div id="jump_page">
|
15
|
+
<a class="source" href="../dailycred.html">dailycred.rb</a>
|
16
|
+
<a class="source" href="acts_as_dailycred.html">acts_as_dailycred.rb</a>
|
17
|
+
<a class="source" href="client.html">client.rb</a>
|
18
|
+
<a class="source" href="engine.html">engine.rb</a>
|
19
|
+
<a class="source" href="helper.html">helper.rb</a>
|
20
|
+
<a class="source" href="middleware.html">middleware.rb</a>
|
21
|
+
<a class="source" href="tests_helper.html">tests_helper.rb</a>
|
22
|
+
<a class="source" href="user.html">user.rb</a>
|
23
|
+
<a class="source" href="../generators/dailycred_generator.html">dailycred_generator.rb</a>
|
24
|
+
<a class="source" href="../generators/templates/migration_create_user.html">migration_create_user.rb</a>
|
25
|
+
<a class="source" href="../generators/templates/omniauth.html">omniauth.rb</a>
|
26
|
+
<a class="source" href="../generators/templates/sessions_controller.html">sessions_controller.rb</a>
|
27
|
+
<a class="source" href="../generators/templates/user.html">user.rb</a>
|
28
|
+
<a class="source" href="../omniauth/strategies/dailycred.html">dailycred.rb</a>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<table cellspacing=0 cellpadding=0>
|
33
|
+
<thead>
|
34
|
+
<tr>
|
35
|
+
<th class=docs><h1>client.rb</h1></th>
|
36
|
+
<th class=code></th>
|
37
|
+
</tr>
|
38
|
+
</thead>
|
39
|
+
<tbody>
|
40
|
+
<tr id='section-1'>
|
41
|
+
<td class=docs>
|
42
|
+
<div class="pilwrap">
|
43
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
</td>
|
47
|
+
<td class=code>
|
48
|
+
<div class='highlight'><pre><span class="k">module</span> <span class="nn">Dailycred</span>
|
49
|
+
<span class="k">class</span> <span class="nc">Client</span>
|
50
|
+
<span class="kp">attr_accessor</span> <span class="ss">:client_id</span><span class="p">,</span> <span class="ss">:secret_key</span><span class="p">,</span> <span class="ss">:options</span><span class="p">,</span> <span class="ss">:url</span>
|
51
|
+
|
52
|
+
<span class="no">URL</span> <span class="o">=</span> <span class="s2">"https://www.dailycred.com"</span>
|
53
|
+
|
54
|
+
<span class="no">ROUTES</span> <span class="o">=</span> <span class="p">{</span>
|
55
|
+
<span class="ss">:signup</span> <span class="o">=></span> <span class="s2">"/user/api/signup.json"</span><span class="p">,</span>
|
56
|
+
<span class="ss">:login</span> <span class="o">=></span> <span class="s2">"/user/api/signin.json"</span>
|
57
|
+
<span class="p">}</span></pre></div>
|
58
|
+
</td>
|
59
|
+
</tr>
|
60
|
+
<tr id='section-2'>
|
61
|
+
<td class=docs>
|
62
|
+
<div class="pilwrap">
|
63
|
+
<a class="pilcrow" href="#section-2">¶</a>
|
64
|
+
</div>
|
65
|
+
<p>Initializes a dailycred object</p>
|
66
|
+
|
67
|
+
<ul>
|
68
|
+
<li>@param [String] client_id the client’s daiycred client id</li>
|
69
|
+
<li>@param [String] secret_key the clients secret key</li>
|
70
|
+
<li>@param [Hash] opts a hash of options</li>
|
71
|
+
</ul>
|
72
|
+
</td>
|
73
|
+
<td class=code>
|
74
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">client_id</span><span class="p">,</span> <span class="n">secret_key</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">opts</span><span class="o">=</span><span class="p">{})</span>
|
75
|
+
<span class="vi">@client_id</span> <span class="o">=</span> <span class="n">client_id</span>
|
76
|
+
<span class="vi">@secret_key</span> <span class="o">=</span> <span class="n">secret_key</span>
|
77
|
+
<span class="vi">@options</span> <span class="o">=</span> <span class="n">opts</span>
|
78
|
+
<span class="n">opts</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">]</span> <span class="o">||=</span> <span class="p">{}</span>
|
79
|
+
<span class="vi">@url</span> <span class="o">=</span> <span class="n">opts</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">][</span><span class="ss">:site</span><span class="o">]</span> <span class="o">||</span> <span class="no">Dailycred</span><span class="o">::</span><span class="no">Client</span><span class="o">::</span><span class="no">URL</span>
|
80
|
+
<span class="k">end</span></pre></div>
|
81
|
+
</td>
|
82
|
+
</tr>
|
83
|
+
<tr id='section-3'>
|
84
|
+
<td class=docs>
|
85
|
+
<div class="pilwrap">
|
86
|
+
<a class="pilcrow" href="#section-3">¶</a>
|
87
|
+
</div>
|
88
|
+
<p>Generates a Dailycred event</p>
|
89
|
+
|
90
|
+
<ul>
|
91
|
+
<li>@param [String] user_id the user’s dailycred user id</li>
|
92
|
+
<li>@param [String] key the name of the event type</li>
|
93
|
+
<li>@param [String] val the value of the event (optional)</li>
|
94
|
+
</ul>
|
95
|
+
</td>
|
96
|
+
<td class=code>
|
97
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">event</span><span class="p">(</span><span class="n">user_id</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">val</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span>
|
98
|
+
<span class="n">opts</span> <span class="o">=</span> <span class="p">{</span>
|
99
|
+
<span class="ss">:key</span> <span class="o">=></span> <span class="n">key</span><span class="p">,</span>
|
100
|
+
<span class="ss">:valuestring</span> <span class="o">=></span> <span class="n">val</span><span class="p">,</span>
|
101
|
+
<span class="ss">:user_id</span> <span class="o">=></span> <span class="n">user_id</span>
|
102
|
+
<span class="p">}</span>
|
103
|
+
<span class="n">post</span> <span class="s2">"/admin/api/customevent.json"</span><span class="p">,</span> <span class="n">opts</span>
|
104
|
+
<span class="k">end</span></pre></div>
|
105
|
+
</td>
|
106
|
+
</tr>
|
107
|
+
<tr id='section-4'>
|
108
|
+
<td class=docs>
|
109
|
+
<div class="pilwrap">
|
110
|
+
<a class="pilcrow" href="#section-4">¶</a>
|
111
|
+
</div>
|
112
|
+
<p>Tag a user in dailycred</p>
|
113
|
+
|
114
|
+
<ul>
|
115
|
+
<li>@param [String] user_id the user’s dailycred user id</li>
|
116
|
+
<li>@param [String] tag the desired tag to add</li>
|
117
|
+
</ul>
|
118
|
+
</td>
|
119
|
+
<td class=code>
|
120
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">tag</span><span class="p">(</span><span class="n">user_id</span><span class="p">,</span> <span class="n">tag</span><span class="p">)</span>
|
121
|
+
<span class="n">opts</span> <span class="o">=</span> <span class="p">{</span>
|
122
|
+
<span class="ss">:user_id</span> <span class="o">=></span> <span class="n">user_id</span><span class="p">,</span>
|
123
|
+
<span class="ss">:tag</span> <span class="o">=></span> <span class="n">tag</span>
|
124
|
+
<span class="p">}</span>
|
125
|
+
<span class="n">post</span> <span class="s2">"/admin/api/user/tag.json"</span><span class="p">,</span> <span class="n">opts</span>
|
126
|
+
<span class="k">end</span></pre></div>
|
127
|
+
</td>
|
128
|
+
</tr>
|
129
|
+
<tr id='section-5'>
|
130
|
+
<td class=docs>
|
131
|
+
<div class="pilwrap">
|
132
|
+
<a class="pilcrow" href="#section-5">¶</a>
|
133
|
+
</div>
|
134
|
+
<p>Untag a user in dailycred
|
135
|
+
(see #tag)</p>
|
136
|
+
</td>
|
137
|
+
<td class=code>
|
138
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">untag</span><span class="p">(</span><span class="n">user_id</span><span class="p">,</span> <span class="n">tag</span><span class="p">)</span>
|
139
|
+
<span class="n">opts</span> <span class="o">=</span> <span class="p">{</span>
|
140
|
+
<span class="ss">:user_id</span> <span class="o">=></span> <span class="n">user_id</span><span class="p">,</span>
|
141
|
+
<span class="ss">:tag</span> <span class="o">=></span> <span class="n">tag</span>
|
142
|
+
<span class="p">}</span>
|
143
|
+
<span class="n">post</span> <span class="s2">"/admin/api/user/untag.json"</span><span class="p">,</span> <span class="n">opts</span>
|
144
|
+
<span class="k">end</span></pre></div>
|
145
|
+
</td>
|
146
|
+
</tr>
|
147
|
+
<tr id='section-6'>
|
148
|
+
<td class=docs>
|
149
|
+
<div class="pilwrap">
|
150
|
+
<a class="pilcrow" href="#section-6">¶</a>
|
151
|
+
</div>
|
152
|
+
<p>Send a reset password email</p>
|
153
|
+
|
154
|
+
<ul>
|
155
|
+
<li>@param [string] user the user’s email or username</li>
|
156
|
+
</ul>
|
157
|
+
</td>
|
158
|
+
<td class=code>
|
159
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">passReset</span><span class="p">(</span><span class="n">user</span><span class="p">)</span>
|
160
|
+
<span class="n">opts</span> <span class="o">=</span> <span class="p">{</span>
|
161
|
+
<span class="ss">:user</span> <span class="o">=></span> <span class="n">user</span>
|
162
|
+
<span class="p">}</span>
|
163
|
+
<span class="n">post</span> <span class="s2">"/password/api/reset"</span><span class="p">,</span> <span class="n">opts</span>
|
164
|
+
<span class="k">end</span></pre></div>
|
165
|
+
</td>
|
166
|
+
</tr>
|
167
|
+
<tr id='section-7'>
|
168
|
+
<td class=docs>
|
169
|
+
<div class="pilwrap">
|
170
|
+
<a class="pilcrow" href="#section-7">¶</a>
|
171
|
+
</div>
|
172
|
+
<p>A wildcard for making any post requests to dailycred.
|
173
|
+
client<em>id and client</em>secret are automatically added to the request</p>
|
174
|
+
|
175
|
+
<ul>
|
176
|
+
<li>@param [string] url</li>
|
177
|
+
<li>@param [hash] opts</li>
|
178
|
+
<li>@param [boolean] secure whether the client_secret should be passed. Defaults to true</li>
|
179
|
+
</ul>
|
180
|
+
|
181
|
+
</td>
|
182
|
+
<td class=code>
|
183
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">opts</span><span class="p">,</span> <span class="n">secure</span><span class="o">=</span><span class="kp">true</span><span class="p">)</span>
|
184
|
+
<span class="n">opts</span><span class="o">.</span><span class="n">merge!</span> <span class="n">base_opts</span><span class="p">(</span><span class="n">secure</span><span class="p">)</span>
|
185
|
+
<span class="n">response</span> <span class="o">=</span> <span class="n">get_conn</span><span class="o">.</span><span class="n">post</span> <span class="n">url</span><span class="p">,</span> <span class="n">opts</span>
|
186
|
+
<span class="k">end</span>
|
187
|
+
|
188
|
+
<span class="kp">private</span>
|
189
|
+
|
190
|
+
<span class="k">def</span> <span class="nf">ssl_opts</span>
|
191
|
+
<span class="n">opts</span> <span class="o">=</span> <span class="p">{}</span>
|
192
|
+
<span class="k">if</span> <span class="vi">@options</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">]</span> <span class="o">&&</span> <span class="vi">@options</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">][</span><span class="ss">:ssl</span><span class="o">]</span>
|
193
|
+
<span class="n">opts</span><span class="o">[</span><span class="ss">:ssl</span><span class="o">]</span> <span class="o">=</span> <span class="vi">@options</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">][</span><span class="ss">:ssl</span><span class="o">]</span>
|
194
|
+
<span class="k">end</span>
|
195
|
+
<span class="n">opts</span>
|
196
|
+
<span class="k">end</span>
|
197
|
+
|
198
|
+
<span class="k">def</span> <span class="nf">base_opts</span> <span class="n">secure</span><span class="o">=</span><span class="kp">true</span>
|
199
|
+
<span class="n">opts</span> <span class="o">=</span> <span class="p">{</span><span class="ss">:client_id</span> <span class="o">=></span> <span class="vi">@client_id</span><span class="p">}</span>
|
200
|
+
<span class="n">opts</span><span class="o">[</span><span class="ss">:client_secret</span><span class="o">]</span> <span class="o">=</span> <span class="vi">@secret_key</span> <span class="k">if</span> <span class="n">secure</span>
|
201
|
+
<span class="n">opts</span>
|
202
|
+
<span class="k">end</span>
|
203
|
+
|
204
|
+
<span class="k">def</span> <span class="nf">get_conn</span>
|
205
|
+
<span class="no">Faraday</span><span class="o">::</span><span class="no">Connection</span><span class="o">.</span><span class="n">new</span> <span class="vi">@url</span><span class="p">,</span> <span class="n">ssl_opts</span>
|
206
|
+
<span class="k">end</span>
|
207
|
+
<span class="k">end</span>
|
208
|
+
|
209
|
+
<span class="k">end</span></pre></div>
|
210
|
+
</td>
|
211
|
+
</tr>
|
212
|
+
</table>
|
213
|
+
</div>
|
214
|
+
</body>
|
@@ -0,0 +1,112 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>engine.rb</title>
|
6
|
+
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div id='container'>
|
10
|
+
<div id="background"></div>
|
11
|
+
<div id="jump_to">
|
12
|
+
Jump To …
|
13
|
+
<div id="jump_wrapper">
|
14
|
+
<div id="jump_page">
|
15
|
+
<a class="source" href="../dailycred.html">dailycred.rb</a>
|
16
|
+
<a class="source" href="acts_as_dailycred.html">acts_as_dailycred.rb</a>
|
17
|
+
<a class="source" href="client.html">client.rb</a>
|
18
|
+
<a class="source" href="engine.html">engine.rb</a>
|
19
|
+
<a class="source" href="helper.html">helper.rb</a>
|
20
|
+
<a class="source" href="middleware.html">middleware.rb</a>
|
21
|
+
<a class="source" href="tests_helper.html">tests_helper.rb</a>
|
22
|
+
<a class="source" href="user.html">user.rb</a>
|
23
|
+
<a class="source" href="../generators/dailycred_generator.html">dailycred_generator.rb</a>
|
24
|
+
<a class="source" href="../generators/templates/migration_create_user.html">migration_create_user.rb</a>
|
25
|
+
<a class="source" href="../generators/templates/omniauth.html">omniauth.rb</a>
|
26
|
+
<a class="source" href="../generators/templates/sessions_controller.html">sessions_controller.rb</a>
|
27
|
+
<a class="source" href="../generators/templates/user.html">user.rb</a>
|
28
|
+
<a class="source" href="../omniauth/strategies/dailycred.html">dailycred.rb</a>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<table cellspacing=0 cellpadding=0>
|
33
|
+
<thead>
|
34
|
+
<tr>
|
35
|
+
<th class=docs><h1>engine.rb</h1></th>
|
36
|
+
<th class=code></th>
|
37
|
+
</tr>
|
38
|
+
</thead>
|
39
|
+
<tbody>
|
40
|
+
<tr id='section-1'>
|
41
|
+
<td class=docs>
|
42
|
+
<div class="pilwrap">
|
43
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
</td>
|
47
|
+
<td class=code>
|
48
|
+
<div class='highlight'><pre><span class="nb">require</span> <span class="s1">'rails'</span>
|
49
|
+
<span class="k">module</span> <span class="nn">Dailycred</span>
|
50
|
+
|
51
|
+
<span class="k">class</span> <span class="nc">Engine</span> <span class="o"><</span> <span class="no">Rails</span><span class="o">::</span><span class="no">Engine</span>
|
52
|
+
|
53
|
+
<span class="n">initializer</span> <span class="s1">'dailycred.setup'</span><span class="p">,</span> <span class="ss">:after</span><span class="o">=></span><span class="s2">"dailycred"</span> <span class="k">do</span> <span class="o">|</span><span class="n">app</span><span class="o">|</span>
|
54
|
+
<span class="n">conf</span> <span class="o">=</span> <span class="no">Rails</span><span class="o">.</span><span class="n">configuration</span><span class="c1"># alias for configuration</span>
|
55
|
+
<span class="k">if</span> <span class="n">conf</span><span class="o">.</span><span class="n">respond_to?</span> <span class="s1">'DAILYCRED_CLIENT_ID'</span>
|
56
|
+
<span class="nb">id</span> <span class="o">=</span> <span class="n">conf</span><span class="o">.</span><span class="n">DAILYCRED_CLIENT_ID</span>
|
57
|
+
<span class="n">secret</span> <span class="o">=</span> <span class="n">conf</span><span class="o">.</span><span class="n">DAILYCRED_SECRET_KEY</span></pre></div>
|
58
|
+
</td>
|
59
|
+
</tr>
|
60
|
+
<tr id='section-2'>
|
61
|
+
<td class=docs>
|
62
|
+
<div class="pilwrap">
|
63
|
+
<a class="pilcrow" href="#section-2">¶</a>
|
64
|
+
</div>
|
65
|
+
<p>setup omniauth options, can be overridden. ex:
|
66
|
+
Rails.application.DAILYCRED<em>OPTIONS = {
|
67
|
+
:client</em>options => {
|
68
|
+
:site => ‘https://www.dailycred.com’,
|
69
|
+
:authorize<em>url => ‘/connect’,
|
70
|
+
:token</em>url => ‘/oauth/access_token’
|
71
|
+
}
|
72
|
+
}</p>
|
73
|
+
|
74
|
+
</td>
|
75
|
+
<td class=code>
|
76
|
+
<div class='highlight'><pre> <span class="k">if</span> <span class="n">conf</span><span class="o">.</span><span class="n">respond_to?</span> <span class="s1">'DAILYCRED_OPTIONS'</span>
|
77
|
+
<span class="n">opts</span> <span class="o">=</span> <span class="n">conf</span><span class="o">.</span><span class="n">DAILYCRED_OPTIONS</span>
|
78
|
+
<span class="n">opts</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">]</span> <span class="o">||=</span> <span class="p">{}</span>
|
79
|
+
<span class="n">opts</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">][</span><span class="ss">:ssl</span><span class="o">]</span> <span class="o">=</span> <span class="p">{}</span>
|
80
|
+
<span class="k">else</span>
|
81
|
+
<span class="n">opts</span> <span class="o">=</span> <span class="p">{</span><span class="ss">:client_options</span> <span class="o">=></span> <span class="p">{</span><span class="ss">:ssl</span> <span class="o">=></span> <span class="p">{}}}</span>
|
82
|
+
<span class="n">conf</span><span class="o">.</span><span class="n">DAILYCRED_OPTIONS</span> <span class="o">=</span> <span class="n">opts</span>
|
83
|
+
<span class="k">end</span>
|
84
|
+
|
85
|
+
<span class="k">if</span> <span class="no">File</span><span class="o">.</span><span class="n">exists?</span><span class="p">(</span><span class="s1">'/etc/ssl/certs'</span><span class="p">)</span>
|
86
|
+
<span class="n">opts</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">][</span><span class="ss">:ssl</span><span class="o">][</span><span class="ss">:ca_path</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'/etc/ssl/certs'</span>
|
87
|
+
<span class="k">end</span>
|
88
|
+
<span class="k">if</span> <span class="no">File</span><span class="o">.</span><span class="n">exists?</span><span class="p">(</span><span class="s1">'/opt/local/share/curl/curl-ca-bundle.crt'</span><span class="p">)</span>
|
89
|
+
<span class="n">opts</span><span class="o">[</span><span class="ss">:client_options</span><span class="o">][</span><span class="ss">:ssl</span><span class="o">][</span><span class="ss">:ca_file</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'/opt/local/share/curl/curl-ca-bundle.crt'</span>
|
90
|
+
<span class="k">end</span>
|
91
|
+
|
92
|
+
<span class="no">Rails</span><span class="o">.</span><span class="n">application</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">middleware</span><span class="o">.</span><span class="n">use</span> <span class="no">OmniAuth</span><span class="o">::</span><span class="no">Builder</span> <span class="k">do</span>
|
93
|
+
<span class="n">provider</span> <span class="ss">:dailycred</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">secret</span><span class="p">,</span> <span class="n">opts</span>
|
94
|
+
<span class="k">end</span>
|
95
|
+
|
96
|
+
<span class="no">Rails</span><span class="o">.</span><span class="n">application</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">middleware</span><span class="o">.</span><span class="n">use</span> <span class="s2">"Dailycred::Middleware"</span><span class="p">,</span> <span class="nb">id</span>
|
97
|
+
|
98
|
+
<span class="no">ActiveSupport</span><span class="o">.</span><span class="n">on_load</span><span class="p">(</span><span class="ss">:action_controller</span><span class="p">)</span> <span class="k">do</span>
|
99
|
+
<span class="kp">include</span> <span class="no">Dailycred</span><span class="o">::</span><span class="no">Helpers</span>
|
100
|
+
<span class="k">end</span>
|
101
|
+
<span class="k">end</span>
|
102
|
+
<span class="k">end</span>
|
103
|
+
|
104
|
+
|
105
|
+
<span class="k">end</span>
|
106
|
+
|
107
|
+
<span class="k">end</span></pre></div>
|
108
|
+
</td>
|
109
|
+
</tr>
|
110
|
+
</table>
|
111
|
+
</div>
|
112
|
+
</body>
|
@@ -0,0 +1,125 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>helper.rb</title>
|
6
|
+
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div id='container'>
|
10
|
+
<div id="background"></div>
|
11
|
+
<div id="jump_to">
|
12
|
+
Jump To …
|
13
|
+
<div id="jump_wrapper">
|
14
|
+
<div id="jump_page">
|
15
|
+
<a class="source" href="../dailycred.html">dailycred.rb</a>
|
16
|
+
<a class="source" href="acts_as_dailycred.html">acts_as_dailycred.rb</a>
|
17
|
+
<a class="source" href="client.html">client.rb</a>
|
18
|
+
<a class="source" href="engine.html">engine.rb</a>
|
19
|
+
<a class="source" href="helper.html">helper.rb</a>
|
20
|
+
<a class="source" href="middleware.html">middleware.rb</a>
|
21
|
+
<a class="source" href="tests_helper.html">tests_helper.rb</a>
|
22
|
+
<a class="source" href="user.html">user.rb</a>
|
23
|
+
<a class="source" href="../generators/dailycred_generator.html">dailycred_generator.rb</a>
|
24
|
+
<a class="source" href="../generators/templates/migration_create_user.html">migration_create_user.rb</a>
|
25
|
+
<a class="source" href="../generators/templates/omniauth.html">omniauth.rb</a>
|
26
|
+
<a class="source" href="../generators/templates/sessions_controller.html">sessions_controller.rb</a>
|
27
|
+
<a class="source" href="../generators/templates/user.html">user.rb</a>
|
28
|
+
<a class="source" href="../omniauth/strategies/dailycred.html">dailycred.rb</a>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<table cellspacing=0 cellpadding=0>
|
33
|
+
<thead>
|
34
|
+
<tr>
|
35
|
+
<th class=docs><h1>helper.rb</h1></th>
|
36
|
+
<th class=code></th>
|
37
|
+
</tr>
|
38
|
+
</thead>
|
39
|
+
<tbody>
|
40
|
+
<tr id='section-1'>
|
41
|
+
<td class=docs>
|
42
|
+
<div class="pilwrap">
|
43
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
</td>
|
47
|
+
<td class=code>
|
48
|
+
<div class='highlight'><pre><span class="k">module</span> <span class="nn">Dailycred</span>
|
49
|
+
<span class="k">module</span> <span class="nn">Helpers</span></pre></div>
|
50
|
+
</td>
|
51
|
+
</tr>
|
52
|
+
<tr id='section-2'>
|
53
|
+
<td class=docs>
|
54
|
+
<div class="pilwrap">
|
55
|
+
<a class="pilcrow" href="#section-2">¶</a>
|
56
|
+
</div>
|
57
|
+
<p>use as a before<em>filter to only allow signed in users
|
58
|
+
example:
|
59
|
+
before</em>filter :authenticate</p>
|
60
|
+
</td>
|
61
|
+
<td class=code>
|
62
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">authenticate</span>
|
63
|
+
<span class="n">redirect_to_unauth</span> <span class="k">unless</span> <span class="n">current_user</span>
|
64
|
+
<span class="k">end</span></pre></div>
|
65
|
+
</td>
|
66
|
+
</tr>
|
67
|
+
<tr id='section-3'>
|
68
|
+
<td class=docs>
|
69
|
+
<div class="pilwrap">
|
70
|
+
<a class="pilcrow" href="#section-3">¶</a>
|
71
|
+
</div>
|
72
|
+
<p>helper method for getting an instance of dailycred
|
73
|
+
example:
|
74
|
+
dailycred.tagUser “user_id”, “tag”</p>
|
75
|
+
|
76
|
+
<p>for more documentation, visit https://www.dailycred.com/api/ruby</p>
|
77
|
+
</td>
|
78
|
+
<td class=code>
|
79
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">dailycred</span>
|
80
|
+
<span class="n">config</span> <span class="o">=</span> <span class="no">Rails</span><span class="o">.</span><span class="n">configuration</span>
|
81
|
+
<span class="vi">@dailycred</span> <span class="o">||=</span> <span class="no">Dailycred</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">DAILYCRED_CLIENT_ID</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">DAILYCRED_SECRET_KEY</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">DAILYCRED_OPTIONS</span><span class="p">)</span>
|
82
|
+
<span class="k">end</span></pre></div>
|
83
|
+
</td>
|
84
|
+
</tr>
|
85
|
+
<tr id='section-4'>
|
86
|
+
<td class=docs>
|
87
|
+
<div class="pilwrap">
|
88
|
+
<a class="pilcrow" href="#section-4">¶</a>
|
89
|
+
</div>
|
90
|
+
<p>when making oauth calls, we may need to redirect to our oauth callback url
|
91
|
+
make sure we have the correct state passed back and forth</p>
|
92
|
+
|
93
|
+
</td>
|
94
|
+
<td class=code>
|
95
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">set_state</span>
|
96
|
+
<span class="vi">@state</span> <span class="o">=</span> <span class="n">session</span><span class="o">[</span><span class="s2">"omniauth.state"</span><span class="o">]</span> <span class="o">=</span> <span class="no">SecureRandom</span><span class="o">.</span><span class="n">hex</span><span class="p">(</span><span class="mi">24</span><span class="p">)</span>
|
97
|
+
<span class="k">end</span>
|
98
|
+
|
99
|
+
<span class="k">def</span> <span class="nf">login_path</span><span class="p">(</span><span class="n">params</span><span class="o">=</span><span class="p">{})</span>
|
100
|
+
<span class="s2">"/auth/dailycred"</span>
|
101
|
+
<span class="k">end</span>
|
102
|
+
|
103
|
+
<span class="k">def</span> <span class="nf">redirect_to_auth</span> <span class="n">opts</span><span class="o">=</span><span class="p">{}</span>
|
104
|
+
<span class="n">conf</span> <span class="o">=</span> <span class="no">Rails</span><span class="o">.</span><span class="n">configuration</span><span class="o">.</span><span class="n">DAILYCRED_OPTIONS</span>
|
105
|
+
<span class="n">path</span> <span class="o">=</span> <span class="o">!</span><span class="n">conf</span><span class="o">[</span><span class="ss">:after_auth</span><span class="o">].</span><span class="n">nil?</span> <span class="p">?</span> <span class="n">conf</span><span class="o">[</span><span class="ss">:after_auth</span><span class="o">]</span> <span class="p">:</span> <span class="n">dailycred_engine</span><span class="o">.</span><span class="n">auth_info_path</span>
|
106
|
+
<span class="n">redirect_to</span> <span class="n">path</span><span class="p">,</span> <span class="n">opts</span>
|
107
|
+
<span class="k">end</span>
|
108
|
+
|
109
|
+
<span class="k">def</span> <span class="nf">redirect_to_unauth</span> <span class="n">opts</span> <span class="o">=</span> <span class="p">{}</span>
|
110
|
+
<span class="n">conf</span> <span class="o">=</span> <span class="no">Rails</span><span class="o">.</span><span class="n">configuration</span><span class="o">.</span><span class="n">DAILYCRED_OPTIONS</span>
|
111
|
+
<span class="n">path</span> <span class="o">=</span> <span class="o">!</span><span class="n">conf</span><span class="o">[</span><span class="ss">:after_unauth</span><span class="o">].</span><span class="n">nil?</span> <span class="p">?</span> <span class="n">conf</span><span class="o">[</span><span class="ss">:after_unauth</span><span class="o">]</span> <span class="p">:</span> <span class="n">dailycred_engine</span><span class="o">.</span><span class="n">auth_info_path</span>
|
112
|
+
<span class="n">redirect_to</span> <span class="n">path</span><span class="p">,</span> <span class="n">opts</span>
|
113
|
+
<span class="k">end</span>
|
114
|
+
|
115
|
+
|
116
|
+
<span class="no">ActiveSupport</span><span class="o">.</span><span class="n">on_load</span><span class="p">(</span><span class="ss">:action_controller</span><span class="p">)</span> <span class="k">do</span>
|
117
|
+
<span class="n">helper_method</span> <span class="ss">:current_user</span><span class="p">,</span> <span class="ss">:login_path</span><span class="p">,</span> <span class="ss">:set_state</span><span class="p">,</span> <span class="ss">:dailycred</span><span class="p">,</span> <span class="ss">:authenticate</span>
|
118
|
+
<span class="k">end</span>
|
119
|
+
<span class="k">end</span>
|
120
|
+
<span class="k">end</span></pre></div>
|
121
|
+
</td>
|
122
|
+
</tr>
|
123
|
+
</table>
|
124
|
+
</div>
|
125
|
+
</body>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>middleware.rb</title>
|
6
|
+
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div id='container'>
|
10
|
+
<div id="background"></div>
|
11
|
+
<div id="jump_to">
|
12
|
+
Jump To …
|
13
|
+
<div id="jump_wrapper">
|
14
|
+
<div id="jump_page">
|
15
|
+
<a class="source" href="../dailycred.html">dailycred.rb</a>
|
16
|
+
<a class="source" href="acts_as_dailycred.html">acts_as_dailycred.rb</a>
|
17
|
+
<a class="source" href="client.html">client.rb</a>
|
18
|
+
<a class="source" href="engine.html">engine.rb</a>
|
19
|
+
<a class="source" href="helper.html">helper.rb</a>
|
20
|
+
<a class="source" href="middleware.html">middleware.rb</a>
|
21
|
+
<a class="source" href="tests_helper.html">tests_helper.rb</a>
|
22
|
+
<a class="source" href="user.html">user.rb</a>
|
23
|
+
<a class="source" href="../generators/dailycred_generator.html">dailycred_generator.rb</a>
|
24
|
+
<a class="source" href="../generators/templates/migration_create_user.html">migration_create_user.rb</a>
|
25
|
+
<a class="source" href="../generators/templates/omniauth.html">omniauth.rb</a>
|
26
|
+
<a class="source" href="../generators/templates/sessions_controller.html">sessions_controller.rb</a>
|
27
|
+
<a class="source" href="../generators/templates/user.html">user.rb</a>
|
28
|
+
<a class="source" href="../omniauth/strategies/dailycred.html">dailycred.rb</a>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<table cellspacing=0 cellpadding=0>
|
33
|
+
<thead>
|
34
|
+
<tr>
|
35
|
+
<th class=docs><h1>middleware.rb</h1></th>
|
36
|
+
<th class=code></th>
|
37
|
+
</tr>
|
38
|
+
</thead>
|
39
|
+
<tbody>
|
40
|
+
</table>
|
41
|
+
</div>
|
42
|
+
</body>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>tests_helper.rb</title>
|
6
|
+
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div id='container'>
|
10
|
+
<div id="background"></div>
|
11
|
+
<div id="jump_to">
|
12
|
+
Jump To …
|
13
|
+
<div id="jump_wrapper">
|
14
|
+
<div id="jump_page">
|
15
|
+
<a class="source" href="../dailycred.html">dailycred.rb</a>
|
16
|
+
<a class="source" href="acts_as_dailycred.html">acts_as_dailycred.rb</a>
|
17
|
+
<a class="source" href="client.html">client.rb</a>
|
18
|
+
<a class="source" href="engine.html">engine.rb</a>
|
19
|
+
<a class="source" href="helper.html">helper.rb</a>
|
20
|
+
<a class="source" href="middleware.html">middleware.rb</a>
|
21
|
+
<a class="source" href="tests_helper.html">tests_helper.rb</a>
|
22
|
+
<a class="source" href="user.html">user.rb</a>
|
23
|
+
<a class="source" href="../generators/dailycred_generator.html">dailycred_generator.rb</a>
|
24
|
+
<a class="source" href="../generators/templates/migration_create_user.html">migration_create_user.rb</a>
|
25
|
+
<a class="source" href="../generators/templates/omniauth.html">omniauth.rb</a>
|
26
|
+
<a class="source" href="../generators/templates/sessions_controller.html">sessions_controller.rb</a>
|
27
|
+
<a class="source" href="../generators/templates/user.html">user.rb</a>
|
28
|
+
<a class="source" href="../omniauth/strategies/dailycred.html">dailycred.rb</a>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<table cellspacing=0 cellpadding=0>
|
33
|
+
<thead>
|
34
|
+
<tr>
|
35
|
+
<th class=docs><h1>tests_helper.rb</h1></th>
|
36
|
+
<th class=code></th>
|
37
|
+
</tr>
|
38
|
+
</thead>
|
39
|
+
<tbody>
|
40
|
+
</table>
|
41
|
+
</div>
|
42
|
+
</body>
|