stormpath-rails 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -16,4 +16,4 @@ rdoc
16
16
  spec/reports
17
17
  test/tmp
18
18
  test/version_tmp
19
- tmp
19
+ tmp/
data/README.md CHANGED
@@ -1,30 +1,44 @@
1
- # Stormpath::Rails
2
-
3
1
  [![Build Status](https://secure.travis-ci.org/stormpath/stormpath-rails.png)](http://travis-ci.org/stormpath/stormpath-rails)
2
+ [![Code Climate](https://codeclimate.com/github/stormpath/stormpath-rails.png)](https://codeclimate.com/github/stormpath/stormpath-rails)
3
+
4
+ # Ruby on Rails support for Stormpath
4
5
 
5
- Ruby on Rails support for Stormpath
6
+ ## Gem Setup
6
7
 
7
- ## Usage
8
+ Reference gem from Gemfile.
8
9
 
10
+ ```ruby
9
11
  add gem 'stormpath-rails' to Gemfile
12
+ ```
13
+
14
+ Generate configuration file, then create directory per environment at stormpath and update stormpath.yml with corresponding directory hrefs.
15
+
16
+ ```sh
17
+ rails g stormpath:rails:install
18
+ ```
10
19
 
11
- run rails g stormpath:rails:install
12
20
 
13
- edit config/stormpath.yml
21
+ Generate and run migration, if you're on ActiveRecord. Skip this step for Mongoid.
14
22
 
15
- export stormpath connection string to STORMPATH_URL (optional)
23
+ ```sh
24
+ rails g stormpath:rails:migration user
25
+ rake db:migrate
26
+ ```
27
+
28
+ Update your model file.
16
29
 
17
30
  ```ruby
18
31
  class User < ActiveRecord:Base
19
- include Stormpath::Rails::Account
32
+ include Stormpath::Rails::Account
20
33
  end
21
34
  ```
22
35
 
23
- add stormpath_url column to store stormpath UID.
24
-
25
36
  ## TODO
26
37
 
27
- Preventive validation to not send invalid data to stormpath.
38
+ + Automatic directory layout (test, development, production) creation
39
+ + Preventive validation to not send invalid data to stormpath.
40
+ + Preventive validation to not send invalid data to stormpath.
41
+ + Solve n+1 request problem when requesting account collection.
28
42
 
29
43
  ## Contributing
30
44
 
@@ -2,20 +2,10 @@ module Stormpath
2
2
  module Rails
3
3
  module Generators
4
4
  class InstallGenerator < ::Rails::Generators::Base
5
- def create_initializer_file
6
- create_file "config/stormpath.yml", "common:
7
- href: <%= ENV['STORMPATH_URL'] %>
8
- application: https://api.stormpath.com/v1/applications/<application id>
9
-
10
- development:
11
- root: https://api.stormpath.com/v1/directories/<root directory id>
5
+ source_root File.expand_path('../../templates', __FILE__)
12
6
 
13
- test:
14
- root: https://api.stormpath.com/v1/directories/<root directory id>
15
-
16
- production:
17
- root: https://api.stormpath.com/v1/directories/<root directory id>
18
- "
7
+ def create_initializer_file
8
+ template "stormpath.yml", "config/stormpath.yml"
19
9
  end
20
10
  end
21
11
  end
@@ -0,0 +1,17 @@
1
+ require "active_support/core_ext/string/inflections"
2
+
3
+ module Stormpath
4
+ module Rails
5
+ module Generators
6
+ class MigrationGenerator < ::Rails::Generators::Base
7
+ argument :model_name, type: :string, default: "user", banner: "Account model name"
8
+ source_root File.expand_path('../../templates', __FILE__)
9
+
10
+ def create_migration_file
11
+ template "update_account_model.rb",
12
+ "db/migrate/#{Time.now.utc.strftime("%Y%m%d%H%M%S")}_add_stormpath_url_to_#{model_name.pluralize}.rb"
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ common:
2
+ stormpath_url: <%%= ENV['STORMPATH_URL'] %>
3
+
4
+ development:
5
+ root: https://api.stormpath.com/v1/directories/<root directory id>
6
+
7
+ test:
8
+ root: https://api.stormpath.com/v1/directories/<root directory id>
9
+
10
+ production:
11
+ root: https://api.stormpath.com/v1/directories/<root directory id>
@@ -0,0 +1,10 @@
1
+ class AddStormpathUrlTo<%= model_name.pluralize.camelize %> < ActiveRecord::Migration
2
+ def up
3
+ add_column :<%= model_name.pluralize %>, :stormpath_url, :string
4
+ add_index :<%= model_name.pluralize %>, :stormpath_url
5
+ end
6
+
7
+ def down
8
+ remove_column :<%= model_name.pluralize %>, :stormpath_url
9
+ end
10
+ end
@@ -15,8 +15,8 @@ module Stormpath
15
15
  self.partial_updates = false if self.respond_to?(:partial_updates)
16
16
 
17
17
  #Mongoid specific declaration
18
- #TODO index?
19
18
  field(:stormpath_url, type: String) if self.respond_to?(:field)
19
+ index({ stormpath_url: 1 }, { unique: true }) if self.respond_to?(:index)
20
20
 
21
21
  attr_accessor *STORMPATH_FIELDS
22
22
  attr_accessible *STORMPATH_FIELDS
@@ -11,18 +11,18 @@ module Stormpath
11
11
  end
12
12
 
13
13
  def self.authenticate_account(login, password)
14
- application = self.ds.get_resource Config[:application], ::Application
14
+ application = self.ds.get_resource Config[:stormpath_url], ::Application
15
15
  auth_result = application.authenticate_account ::UsernamePasswordRequest.new(login, password)
16
16
  auth_result.get_account
17
17
  end
18
18
 
19
19
  def self.send_password_reset_email(login_or_email)
20
- application = self.ds.get_resource Config[:application], ::Application
20
+ application = self.ds.get_resource Config[:stormpath_url], ::Application
21
21
  application.send_password_reset_email login_or_email
22
22
  end
23
23
 
24
24
  def self.verify_password_reset_token(token)
25
- application = self.ds.get_resource Config[:application], ::Application
25
+ application = self.ds.get_resource Config[:stormpath_url], ::Application
26
26
  application.verify_password_reset_token token
27
27
  end
28
28
 
@@ -63,7 +63,7 @@ module Stormpath
63
63
  end
64
64
 
65
65
  def self.client
66
- self.connection ||= ::ClientApplicationBuilder.new.set_application_href(Config[:href]).build
66
+ self.connection ||= ::ClientApplicationBuilder.new.set_application_href(Config[:stormpath_url] || Config[:href]).build
67
67
  self.connection.client
68
68
  end
69
69
  end
@@ -1,5 +1,5 @@
1
1
  module Stormpath
2
2
  module Rails
3
- VERSION = "0.4.3"
3
+ VERSION = "0.4.4"
4
4
  end
5
5
  end
@@ -0,0 +1,17 @@
1
+ require "active_support/core_ext/class/attribute_accessors"
2
+ require "generator_spec/test_case"
3
+ require "generators/stormpath/rails/install/install_generator"
4
+
5
+ describe Stormpath::Rails::Generators::InstallGenerator do
6
+ include GeneratorSpec::TestCase
7
+ destination File.expand_path("../tmp", __FILE__)
8
+
9
+ before(:all) do
10
+ prepare_destination
11
+ run_generator
12
+ end
13
+
14
+ it "creates configuration file" do
15
+ assert_file "config/stormpath.yml", "common:\n stormpath_url: <%= ENV['STORMPATH_URL'] %>\n\ndevelopment:\n root: https://api.stormpath.com/v1/directories/<root directory id>\n\ntest:\n root: https://api.stormpath.com/v1/directories/<root directory id>\n\nproduction:\n root: https://api.stormpath.com/v1/directories/<root directory id>\n"
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ require "active_support/core_ext/class/attribute_accessors"
2
+ require "generator_spec/test_case"
3
+ require "generators/stormpath/rails/migration/migration_generator"
4
+
5
+ describe Stormpath::Rails::Generators::MigrationGenerator do
6
+ include GeneratorSpec::TestCase
7
+ destination File.expand_path("../tmp", __FILE__)
8
+ arguments %w(person)
9
+
10
+ before(:all) do
11
+ Time.stub_chain(:now, :utc, :strftime).and_return("0")
12
+ prepare_destination
13
+ run_generator
14
+ end
15
+
16
+ it "creates configuration file" do
17
+ assert_file "db/migrate/0_add_stormpath_url_to_people.rb", "class AddStormpathUrlToPeople < ActiveRecord::Migration\n def up\n add_column :people, :stormpath_url, :string\n add_index :people, :stormpath_url\n end\n\n def down\n remove_column :people, :stormpath_url\n end\nend"
18
+ end
19
+ end
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
20
20
 
21
21
  gem.add_development_dependency('rake', '~> 10.0.2')
22
22
  gem.add_development_dependency('rspec', '~> 2.12.0')
23
+ gem.add_development_dependency('generator_spec')
23
24
  gem.add_development_dependency('activerecord')
24
25
  gem.add_development_dependency('sqlite3')
25
26
  gem.add_development_dependency('mongoid')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stormpath-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-11 00:00:00.000000000 Z
12
+ date: 2013-02-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -75,6 +75,22 @@ dependencies:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
77
  version: 2.12.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: generator_spec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
78
94
  - !ruby/object:Gem::Dependency
79
95
  name: activerecord
80
96
  requirement: !ruby/object:Gem::Requirement
@@ -187,13 +203,17 @@ files:
187
203
  - README.md
188
204
  - Rakefile
189
205
  - lib/generators/stormpath/rails/install/install_generator.rb
206
+ - lib/generators/stormpath/rails/migration/migration_generator.rb
207
+ - lib/generators/stormpath/rails/templates/stormpath.yml
208
+ - lib/generators/stormpath/rails/templates/update_account_model.rb
190
209
  - lib/stormpath-rails.rb
191
210
  - lib/stormpath/rails/account.rb
192
211
  - lib/stormpath/rails/client.rb
193
212
  - lib/stormpath/rails/config.rb
194
213
  - lib/stormpath/rails/version.rb
195
214
  - spec/fixtures/config/stormpath.yml
196
- - spec/generators/stormpath/rails/install/install_generator_spec.rb
215
+ - spec/generators/install_generator_spec.rb
216
+ - spec/generators/migration_generator_spec.rb
197
217
  - spec/integration/active_record_spec.rb
198
218
  - spec/integration/mongoid_spec.rb
199
219
  - spec/spec_helper.rb
@@ -227,7 +247,8 @@ specification_version: 3
227
247
  summary: Stormpath SDK API Wrapper
228
248
  test_files:
229
249
  - spec/fixtures/config/stormpath.yml
230
- - spec/generators/stormpath/rails/install/install_generator_spec.rb
250
+ - spec/generators/install_generator_spec.rb
251
+ - spec/generators/migration_generator_spec.rb
231
252
  - spec/integration/active_record_spec.rb
232
253
  - spec/integration/mongoid_spec.rb
233
254
  - spec/spec_helper.rb
@@ -1,9 +0,0 @@
1
- require "spec_helper"
2
- require "generators/stormpath/rails/install/install_generator"
3
-
4
- describe Stormpath::Rails::Generators::InstallGenerator do
5
- it "creates a configuration file" do
6
- subject.should_receive(:create_file).with("config/stormpath.yml", kind_of(String))
7
- subject.create_initializer_file
8
- end
9
- end