dailycred 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +14 -2
  3. data/Guardfile +15 -0
  4. data/README.md +159 -33
  5. data/Rakefile +30 -0
  6. data/app/controllers/sessions_controller.rb +31 -0
  7. data/app/views/sessions/info.html.erb +13 -0
  8. data/config/routes.rb +7 -0
  9. data/dailycred.gemspec +4 -3
  10. data/docs/lib/dailycred/acts_as_dailycred.html +42 -0
  11. data/docs/lib/dailycred/client.html +214 -0
  12. data/docs/lib/dailycred/engine.html +112 -0
  13. data/docs/lib/dailycred/helper.html +125 -0
  14. data/docs/lib/dailycred/middleware.html +42 -0
  15. data/docs/lib/dailycred/tests_helper.html +42 -0
  16. data/docs/lib/dailycred/user.html +133 -0
  17. data/docs/lib/dailycred.html +42 -0
  18. data/docs/lib/generators/dailycred_generator.html +42 -0
  19. data/docs/lib/generators/templates/migration_create_user.html +39 -0
  20. data/docs/lib/generators/templates/omniauth.html +71 -0
  21. data/docs/lib/generators/templates/sessions_controller.html +96 -0
  22. data/docs/lib/generators/templates/user.html +42 -0
  23. data/docs/lib/middleware/middleware.html +38 -0
  24. data/docs/lib/omniauth/strategies/dailycred.html +199 -0
  25. data/docs/lib/omniauth-dailycred/version.html +38 -0
  26. data/docs/lib/user/user.html +129 -0
  27. data/dummy/.gitignore +15 -0
  28. data/dummy/Gemfile +55 -0
  29. data/dummy/Guardfile +31 -0
  30. data/dummy/README.rdoc +261 -0
  31. data/dummy/Rakefile +7 -0
  32. data/dummy/app/assets/images/rails.png +0 -0
  33. data/dummy/app/assets/javascripts/application.js +15 -0
  34. data/dummy/app/assets/javascripts/posts.js.coffee +3 -0
  35. data/dummy/app/assets/stylesheets/application.css +13 -0
  36. data/dummy/app/assets/stylesheets/posts.css.scss +3 -0
  37. data/dummy/app/assets/stylesheets/scaffolds.css.scss +69 -0
  38. data/dummy/app/controllers/application_controller.rb +16 -0
  39. data/dummy/app/controllers/posts_controller.rb +85 -0
  40. data/dummy/app/helpers/application_helper.rb +2 -0
  41. data/dummy/app/helpers/posts_helper.rb +2 -0
  42. data/dummy/app/mailers/.gitkeep +0 -0
  43. data/dummy/app/models/.gitkeep +0 -0
  44. data/dummy/app/models/post.rb +3 -0
  45. data/dummy/app/models/user.rb +3 -0
  46. data/dummy/app/views/layouts/application.html.erb +14 -0
  47. data/dummy/app/views/posts/_form.html.erb +21 -0
  48. data/dummy/app/views/posts/edit.html.erb +6 -0
  49. data/dummy/app/views/posts/index.html.erb +23 -0
  50. data/dummy/app/views/posts/new.html.erb +5 -0
  51. data/dummy/app/views/posts/show.html.erb +10 -0
  52. data/dummy/config/application.rb +62 -0
  53. data/dummy/config/boot.rb +6 -0
  54. data/dummy/config/database.yml +25 -0
  55. data/dummy/config/environment.rb +5 -0
  56. data/dummy/config/environments/development.rb +37 -0
  57. data/dummy/config/environments/production.rb +67 -0
  58. data/dummy/config/environments/test.rb +37 -0
  59. data/dummy/config/initializers/backtrace_silencers.rb +7 -0
  60. data/dummy/config/initializers/inflections.rb +15 -0
  61. data/dummy/config/initializers/mime_types.rb +5 -0
  62. data/dummy/config/initializers/omniauth.rb +13 -0
  63. data/dummy/config/initializers/secret_token.rb +7 -0
  64. data/dummy/config/initializers/session_store.rb +8 -0
  65. data/dummy/config/initializers/wrap_parameters.rb +14 -0
  66. data/dummy/config/locales/en.yml +5 -0
  67. data/dummy/config/routes.rb +61 -0
  68. data/dummy/config.ru +4 -0
  69. data/dummy/db/migrate/20120925172903_create_users.rb +68 -0
  70. data/dummy/db/migrate/20120926012555_create_posts.rb +9 -0
  71. data/dummy/db/migrate/20121002192037_update_users_2.rb +70 -0
  72. data/dummy/db/schema.rb +45 -0
  73. data/dummy/db/seeds.rb +7 -0
  74. data/dummy/lib/assets/.gitkeep +0 -0
  75. data/dummy/lib/tasks/.gitkeep +0 -0
  76. data/dummy/log/.gitkeep +0 -0
  77. data/dummy/public/404.html +26 -0
  78. data/dummy/public/422.html +26 -0
  79. data/dummy/public/500.html +25 -0
  80. data/dummy/public/favicon.ico +0 -0
  81. data/dummy/public/index.html +241 -0
  82. data/dummy/public/robots.txt +5 -0
  83. data/dummy/script/rails +6 -0
  84. data/dummy/test/fixtures/.gitkeep +0 -0
  85. data/dummy/test/fixtures/posts.yml +7 -0
  86. data/dummy/test/fixtures/users.yml +3 -0
  87. data/dummy/test/functional/.gitkeep +0 -0
  88. data/dummy/test/functional/posts_controller_test.rb +51 -0
  89. data/dummy/test/integration/.gitkeep +0 -0
  90. data/dummy/test/performance/browsing_test.rb +12 -0
  91. data/dummy/test/test_helper.rb +62 -0
  92. data/dummy/test/unit/.gitkeep +0 -0
  93. data/dummy/test/unit/helpers/posts_helper_test.rb +4 -0
  94. data/dummy/test/unit/post_test.rb +7 -0
  95. data/dummy/test/unit/user_test.rb +77 -0
  96. data/dummy/vendor/assets/javascripts/.gitkeep +0 -0
  97. data/dummy/vendor/assets/stylesheets/.gitkeep +0 -0
  98. data/dummy/vendor/plugins/.gitkeep +0 -0
  99. data/lib/dailycred/acts_as_dailycred.rb +87 -0
  100. data/lib/dailycred/client.rb +105 -0
  101. data/lib/dailycred/engine.rb +52 -0
  102. data/lib/dailycred/helper.rb +60 -0
  103. data/lib/{middleware → dailycred}/middleware.rb +25 -15
  104. data/lib/dailycred/tests_helper.rb +5 -0
  105. data/lib/dailycred/user.rb +63 -0
  106. data/lib/dailycred.rb +1 -79
  107. data/lib/generators/dailycred_generator.rb +94 -44
  108. data/lib/generators/templates/info.html.erb +1 -1
  109. data/lib/generators/templates/login.html.erb +13 -0
  110. data/lib/generators/templates/migration_create_user.rb +60 -10
  111. data/lib/generators/templates/omniauth.rb +6 -17
  112. data/lib/generators/templates/sessions_controller.rb +8 -2
  113. data/lib/generators/templates/user.rb +1 -23
  114. data/lib/omniauth/strategies/dailycred.rb +37 -20
  115. data/script/download_info.rb +11 -0
  116. data/spec/{spec_helper.rb → helper_spec.rb} +4 -2
  117. data/spec/omniauth/strategies/dailycred_spec.rb +52 -10
  118. data/spec/support/dailycred_spec.rb +72 -0
  119. data/spec/support/shared_examples.rb +40 -0
  120. data/test/generator_test.rb +85 -0
  121. data/test/test_helper.rb +6 -0
  122. metadata +116 -8
  123. 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 &hellip;
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">&#182;</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">&quot;https://www.dailycred.com&quot;</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">=&gt;</span> <span class="s2">&quot;/user/api/signup.json&quot;</span><span class="p">,</span>
56
+ <span class="ss">:login</span> <span class="o">=&gt;</span> <span class="s2">&quot;/user/api/signin.json&quot;</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">&#182;</a>
64
+ </div>
65
+ <p>Initializes a dailycred object</p>
66
+
67
+ <ul>
68
+ <li>@param [String] client_id the client&rsquo;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">&quot;&quot;</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">&#182;</a>
87
+ </div>
88
+ <p>Generates a Dailycred event</p>
89
+
90
+ <ul>
91
+ <li>@param [String] user_id the user&rsquo;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">&quot;&quot;</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">=&gt;</span> <span class="n">key</span><span class="p">,</span>
100
+ <span class="ss">:valuestring</span> <span class="o">=&gt;</span> <span class="n">val</span><span class="p">,</span>
101
+ <span class="ss">:user_id</span> <span class="o">=&gt;</span> <span class="n">user_id</span>
102
+ <span class="p">}</span>
103
+ <span class="n">post</span> <span class="s2">&quot;/admin/api/customevent.json&quot;</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">&#182;</a>
111
+ </div>
112
+ <p>Tag a user in dailycred</p>
113
+
114
+ <ul>
115
+ <li>@param [String] user_id the user&rsquo;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">=&gt;</span> <span class="n">user_id</span><span class="p">,</span>
123
+ <span class="ss">:tag</span> <span class="o">=&gt;</span> <span class="n">tag</span>
124
+ <span class="p">}</span>
125
+ <span class="n">post</span> <span class="s2">&quot;/admin/api/user/tag.json&quot;</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">&#182;</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">=&gt;</span> <span class="n">user_id</span><span class="p">,</span>
141
+ <span class="ss">:tag</span> <span class="o">=&gt;</span> <span class="n">tag</span>
142
+ <span class="p">}</span>
143
+ <span class="n">post</span> <span class="s2">&quot;/admin/api/user/untag.json&quot;</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">&#182;</a>
151
+ </div>
152
+ <p>Send a reset password email</p>
153
+
154
+ <ul>
155
+ <li>@param [string] user the user&rsquo;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">=&gt;</span> <span class="n">user</span>
162
+ <span class="p">}</span>
163
+ <span class="n">post</span> <span class="s2">&quot;/password/api/reset&quot;</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">&#182;</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">&amp;&amp;</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">=&gt;</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 &hellip;
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">&#182;</a>
44
+ </div>
45
+
46
+ </td>
47
+ <td class=code>
48
+ <div class='highlight'><pre><span class="nb">require</span> <span class="s1">&#39;rails&#39;</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">&lt;</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">&#39;dailycred.setup&#39;</span><span class="p">,</span> <span class="ss">:after</span><span class="o">=&gt;</span><span class="s2">&quot;dailycred&quot;</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">&#39;DAILYCRED_CLIENT_ID&#39;</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">&#182;</a>
64
+ </div>
65
+ <p>setup omniauth options, can be overridden. ex:
66
+ Rails.application.DAILYCRED<em>OPTIONS = {
67
+ :client</em>options =&gt; {
68
+ :site =&gt; &lsquo;https://www.dailycred.com&rsquo;,
69
+ :authorize<em>url =&gt; &lsquo;/connect&rsquo;,
70
+ :token</em>url =&gt; &lsquo;/oauth/access_token&rsquo;
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">&#39;DAILYCRED_OPTIONS&#39;</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">=&gt;</span> <span class="p">{</span><span class="ss">:ssl</span> <span class="o">=&gt;</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">&#39;/etc/ssl/certs&#39;</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">&#39;/etc/ssl/certs&#39;</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">&#39;/opt/local/share/curl/curl-ca-bundle.crt&#39;</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">&#39;/opt/local/share/curl/curl-ca-bundle.crt&#39;</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">&quot;Dailycred::Middleware&quot;</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 &hellip;
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">&#182;</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">&#182;</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">&#182;</a>
71
+ </div>
72
+ <p>helper method for getting an instance of dailycred
73
+ example:
74
+ dailycred.tagUser &ldquo;user_id&rdquo;, &ldquo;tag&rdquo;</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">&#182;</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">&quot;omniauth.state&quot;</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">&quot;/auth/dailycred&quot;</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 &hellip;
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 &hellip;
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>