cadenero 0.0.1 → 0.0.2.a
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.
- data/MIT-LICENSE +2 -2
- data/README.md +3 -0
- data/app/models/cadenero/v1/account.rb +1 -1
- data/db/migrate/20130612061604_create_cadenero_v1_accounts.rb +2 -0
- data/db/seeds.rb +2 -0
- data/lib/cadenero/version.rb +2 -2
- data/lib/generators/cadenero/install/templates/initializer.rb +16 -0
- data/lib/generators/cadenero/install_generator.rb +143 -0
- data/spec/controllers/cadenero/v1/accounts_controller_spec.rb +25 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +2 -0
- data/spec/dummy/config/application.rb +63 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +14 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +39 -0
- data/spec/dummy/config/environments/production.rb +69 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/cadenero.rb +0 -0
- data/spec/dummy/config/initializers/secret_token.rb +19 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +13 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/schema.rb +45 -0
- data/spec/dummy/log/development.log +94 -0
- data/spec/dummy/log/test.log +8934 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/spec/spec_helper.rb +38 -0
- data/spec/dummy/tmp/ember-rails/ember-data.js +8886 -0
- data/spec/dummy/tmp/ember-rails/ember.js +29953 -0
- data/spec/features/accounts/sign_up_spec.rb +32 -0
- data/spec/features/cadenero/account_spec.rb +24 -0
- data/spec/features/users/sign_in_spec.rb +63 -0
- data/spec/features/users/sign_up_spec.rb +26 -0
- data/spec/generators/install_generator_spec.rb +56 -0
- data/spec/models/cadenero/account_spec.rb +7 -0
- data/spec/models/cadenero/member_spec.rb +7 -0
- data/spec/models/cadenero/user_spec.rb +7 -0
- data/spec/spec_helper.rb +77 -0
- data/spec/support/factories/account_factory.rb +15 -0
- data/spec/support/factories/user_factory.rb +6 -0
- data/spec/support/generator_macros.rb +29 -0
- data/spec/support/subdomain_helpers.rb +8 -0
- metadata +93 -9
- data/db/migrate/20130612093908_add_authentication_token_to_accounts.rb +0 -6
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
def create_account
|
4
|
+
@visitor ||= { name: "Testy", subdomain: "test", owner_attributes:
|
5
|
+
{email: "testy@example.com", password: "changeme", password_confirmation: "changeme"} }
|
6
|
+
end
|
7
|
+
|
8
|
+
def find_account_by_name
|
9
|
+
@account = Cadenero::V1::Account.where(name: @visitor[:name]).first
|
10
|
+
end
|
11
|
+
|
12
|
+
def sign_up
|
13
|
+
create_account
|
14
|
+
post "/v1/accounts", account: @visitor
|
15
|
+
find_account_by_name
|
16
|
+
end
|
17
|
+
|
18
|
+
feature 'Accounts' do
|
19
|
+
scenario "creating an account" do
|
20
|
+
sign_up
|
21
|
+
expect(last_response.status).to eq 201
|
22
|
+
expect(JSON.parse(last_response.body)).to have_content "auth_token"
|
23
|
+
end
|
24
|
+
|
25
|
+
scenario "cannot create an account with an already used subdomain" do
|
26
|
+
Cadenero::V1::Account.create!(:subdomain => "test", :name => "Testy")
|
27
|
+
sign_up
|
28
|
+
expect(last_response.status).to eq 422
|
29
|
+
errors = { errors: {subdomain:["has already been taken"]} }
|
30
|
+
expect(last_response.body).to eql(errors.to_json)
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
feature Cadenero::V1::Account do
|
4
|
+
scenario "can be created with an owner" do
|
5
|
+
params = {
|
6
|
+
:name => "Test Account",
|
7
|
+
:subdomain => "test",
|
8
|
+
:owner_attributes => {
|
9
|
+
:email => "user@example.com",
|
10
|
+
:password => "password",
|
11
|
+
:password_confirmation => "password"
|
12
|
+
}
|
13
|
+
}
|
14
|
+
account = Cadenero::V1::Account.create_with_owner(params)
|
15
|
+
account.should be_persisted
|
16
|
+
account.users.first.should == account.owner
|
17
|
+
end
|
18
|
+
|
19
|
+
it "cannot create an account without a subdomain" do
|
20
|
+
account = Cadenero::V1::Account.create_with_owner
|
21
|
+
account.should_not be_valid
|
22
|
+
account.users.should be_empty
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
feature 'User sign in' do
|
3
|
+
extend SubdomainHelpers
|
4
|
+
|
5
|
+
def create_account_user
|
6
|
+
@user ||= { email: "user@example.com", password: "password", password_confirmation: "password" }
|
7
|
+
end
|
8
|
+
|
9
|
+
def sign_in_account_user(user)
|
10
|
+
@user = { email: user.email, password: "password", password_confirmation: "password" }
|
11
|
+
end
|
12
|
+
|
13
|
+
def find_account_by_email
|
14
|
+
create_account_user
|
15
|
+
@account = Cadenero::V1::Account.where(name: @user[:email]).first
|
16
|
+
end
|
17
|
+
|
18
|
+
def sign_in_user(url, user)
|
19
|
+
post "#{url}", user: user
|
20
|
+
find_account_by_email
|
21
|
+
end
|
22
|
+
|
23
|
+
let(:account) { FactoryGirl.create(:account_with_schema) }
|
24
|
+
let(:errors_redirect_ro_sign_in) {{errors: "Please sign in. posting the user json credentials to /v1/sign_in", links: "/v1/sign_in"}.to_json}
|
25
|
+
let(:errors_invalid_email_or_password) {{ errors: {user:["Invalid email or password"]} }.to_json}
|
26
|
+
let(:sign_in_url) { "http://#{account.subdomain}.example.com/v1/sign_in" }
|
27
|
+
let(:root_url) { "http://#{account.subdomain}.example.com/v1" }
|
28
|
+
|
29
|
+
within_account_subdomain do
|
30
|
+
scenario "signs in as an account owner successfully" do
|
31
|
+
get root_url
|
32
|
+
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
33
|
+
sign_in_user sign_in_url, sign_in_account_user(account.owner)
|
34
|
+
expect(last_response.status).to eq 201
|
35
|
+
expect(JSON.parse(last_response.body)["user"]["account_ids"]).to eq [account.id]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it "attempts sign in with an invalid password and fails" do
|
40
|
+
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
41
|
+
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
42
|
+
sign_in_user sign_in_url, { email: "user@example.com", password: "", password_confirmation: "" }
|
43
|
+
expect(last_response.status).to eq 422
|
44
|
+
expect(last_response.body).to eql(errors_invalid_email_or_password)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "attempts sign in with an invalid email address and fails" do
|
48
|
+
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
49
|
+
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
50
|
+
sign_in_user sign_in_url, { email: "foo@example.com", password: "password", password_confirmation: "password" }
|
51
|
+
expect(last_response.status).to eq 422
|
52
|
+
expect(last_response.body).to eql(errors_invalid_email_or_password)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "cannot sign in if not a part of this subdomain" do
|
56
|
+
other_account = FactoryGirl.create(:account)
|
57
|
+
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
58
|
+
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
59
|
+
sign_in_user sign_in_url, { email: other_account.owner.email, password: "", password_confirmation: "" }
|
60
|
+
expect(last_response.status).to eq 422
|
61
|
+
expect(last_response.body).to eql(errors_invalid_email_or_password)
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
def create_account_user
|
4
|
+
@user ||= { email: "user@example.com", password: "password", password_confirmation: "password" }
|
5
|
+
end
|
6
|
+
|
7
|
+
def find_account_by_email
|
8
|
+
@account = Cadenero::V1::Account.where(name: @user[:email]).first
|
9
|
+
end
|
10
|
+
|
11
|
+
def sign_up_user(url)
|
12
|
+
create_account_user
|
13
|
+
post "#{url}/v1/sign_up", user: @user
|
14
|
+
find_account_by_email
|
15
|
+
end
|
16
|
+
|
17
|
+
feature "User signup" do
|
18
|
+
let!(:account) { FactoryGirl.create(:account_with_schema) }
|
19
|
+
let(:root_url) { "http://#{account.subdomain}.example.com/" }
|
20
|
+
scenario "under an account" do
|
21
|
+
sign_up_user root_url
|
22
|
+
expect(last_response.status).to eq 201
|
23
|
+
expect(JSON.parse(last_response.body)["user"]["account_ids"]).to eq [account.id]
|
24
|
+
expect(last_request.url).to eq "#{root_url}v1/sign_up"
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/cadenero/install_generator'
|
3
|
+
|
4
|
+
describe Cadenero::Generators::InstallGenerator do
|
5
|
+
before { cleanup! }
|
6
|
+
after { cleanup! }
|
7
|
+
|
8
|
+
# So we can know whether to backup or restore in cleanup!
|
9
|
+
# Wish RSpec had a setting for this already
|
10
|
+
before { flag_example! }
|
11
|
+
def flag_example!
|
12
|
+
example.metadata[:run] = true
|
13
|
+
end
|
14
|
+
|
15
|
+
def migrations
|
16
|
+
Dir["#{Rails.root}/db/migrate/*.rb"].sort
|
17
|
+
end
|
18
|
+
|
19
|
+
it "copies over the migrations" do
|
20
|
+
migrations.should be_empty
|
21
|
+
capture(:stdout) do
|
22
|
+
described_class.start(["--user-class=User", "--no-migrate", "--current-user-helper=current_user"], :destination => Rails.root)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Ensure cadenero migrations have been copied over
|
26
|
+
migrations.should_not be_empty
|
27
|
+
|
28
|
+
# Ensure initializer has been created
|
29
|
+
#cadenero_initializer = File.readlines("#{Rails.root}/config/initializers/cadenero.rb")
|
30
|
+
#cadenero_initializer[0].strip.should == %q{Cadenero.user_class = "User"}
|
31
|
+
|
32
|
+
# Ensure cadenero_user is added to ApplicationController
|
33
|
+
application_controller = File.read("#{Rails.root}/app/controllers/application_controller.rb")
|
34
|
+
expected_cadenero_user_method = %Q{
|
35
|
+
def cadenero_user
|
36
|
+
current_user
|
37
|
+
end
|
38
|
+
helper_method :cadenero_user
|
39
|
+
|
40
|
+
}
|
41
|
+
application_controller.should include(expected_cadenero_user_method)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "seeds the database" do
|
45
|
+
Cadenero::V1::Account.count.should == 0
|
46
|
+
Cadenero::User.count.should == 0
|
47
|
+
|
48
|
+
FactoryGirl.create(:account)
|
49
|
+
FactoryGirl.create(:user)
|
50
|
+
Cadenero::Engine.load_seed
|
51
|
+
|
52
|
+
Cadenero::V1::Account.count.should == 2
|
53
|
+
Cadenero::User.count.should == 3
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
2
|
+
ENV["RAILS_ENV"] ||= 'test'
|
3
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
4
|
+
require 'rspec/rails'
|
5
|
+
require 'rspec/autorun'
|
6
|
+
require 'capybara/rspec'
|
7
|
+
require 'factory_girl'
|
8
|
+
require 'database_cleaner'
|
9
|
+
require 'coveralls'
|
10
|
+
|
11
|
+
Coveralls.wear!
|
12
|
+
|
13
|
+
module ApiHelper
|
14
|
+
require 'rack/test'
|
15
|
+
include Rack::Test::Methods
|
16
|
+
|
17
|
+
def app
|
18
|
+
Rails.application
|
19
|
+
end
|
20
|
+
end
|
21
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
22
|
+
# in spec/support/ and its subdirectories.
|
23
|
+
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
|
24
|
+
|
25
|
+
RSpec.configure do |config|
|
26
|
+
include ApiHelper
|
27
|
+
# ## Mock Framework
|
28
|
+
#
|
29
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
30
|
+
#
|
31
|
+
# config.mock_with :mocha
|
32
|
+
# config.mock_with :flexmock
|
33
|
+
# config.mock_with :rr
|
34
|
+
|
35
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
36
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
37
|
+
|
38
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
39
|
+
# examples within a transaction, remove the following line or assign false
|
40
|
+
# instead of true.
|
41
|
+
config.use_transactional_fixtures = true
|
42
|
+
|
43
|
+
# If true, the base class of anonymous controllers will be inferred
|
44
|
+
# automatically. This will be the default behavior in future versions of
|
45
|
+
# rspec-rails.
|
46
|
+
config.infer_base_class_for_anonymous_controllers = false
|
47
|
+
|
48
|
+
# Run specs in random order to surface order dependencies. If you find an
|
49
|
+
# order dependency and want to debug it, you can fix the order by providing
|
50
|
+
# the seed, which is printed after each run.
|
51
|
+
# --seed 1234
|
52
|
+
config.order = "random"
|
53
|
+
|
54
|
+
config.before(:suite) do
|
55
|
+
DatabaseCleaner.strategy = :truncation
|
56
|
+
DatabaseCleaner.clean_with(:truncation)
|
57
|
+
end
|
58
|
+
config.before(:each) do
|
59
|
+
DatabaseCleaner.start
|
60
|
+
end
|
61
|
+
config.after(:each) do
|
62
|
+
Apartment::Database.reset
|
63
|
+
DatabaseCleaner.clean
|
64
|
+
connection = ActiveRecord::Base.connection.raw_connection
|
65
|
+
schemas = connection.query(%Q{
|
66
|
+
SELECT 'drop schema ' || nspname || ' cascade;'
|
67
|
+
from pg_namespace
|
68
|
+
where nspname != 'public'
|
69
|
+
AND nspname != 'pg_toast'
|
70
|
+
AND nspname != 'pg_catalog'
|
71
|
+
AND nspname != 'information_schema';
|
72
|
+
})
|
73
|
+
schemas.each do |query|
|
74
|
+
connection.query(query.values.first)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
factory :account, :class => Cadenero::V1::Account do
|
3
|
+
sequence(:name) { |n| "Test Account ##{n}" }
|
4
|
+
sequence(:subdomain) { |n| "test#{n}" }
|
5
|
+
association :owner, :factory => :user
|
6
|
+
after(:create) do |account|
|
7
|
+
account.users << account.owner
|
8
|
+
end
|
9
|
+
factory :account_with_schema do
|
10
|
+
after(:create) do |account|
|
11
|
+
account.create_schema
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Cadenero
|
2
|
+
module GeneratorMacros
|
3
|
+
def cleanup!
|
4
|
+
Dir.chdir(Rails.root) do
|
5
|
+
FileUtils.rm_rf("db/migrate")
|
6
|
+
end
|
7
|
+
|
8
|
+
backup_or_restore = "#{example.metadata[:run] ? "restore" : "backup"}_file"
|
9
|
+
["#{Rails.root}/app/controllers/application_controller.rb",
|
10
|
+
"#{Rails.root}/config/routes.rb"].each do |file|
|
11
|
+
send(backup_or_restore, file)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def backup_file(file)
|
16
|
+
FileUtils.cp(file, file + ".bak")
|
17
|
+
end
|
18
|
+
|
19
|
+
def restore_file(file)
|
20
|
+
FileUtils.mv(file + ".bak", file)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
RSpec.configure do |c|
|
26
|
+
c.include Cadenero::GeneratorMacros, :example_group => {
|
27
|
+
:file_path => c.escaped_path(%w[spec (generators)])
|
28
|
+
}
|
29
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cadenero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2.a
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Manuel Vidaurre
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails-api
|
@@ -219,8 +219,8 @@ dependencies:
|
|
219
219
|
- - ~>
|
220
220
|
- !ruby/object:Gem::Version
|
221
221
|
version: 1.0.1
|
222
|
-
description:
|
223
|
-
API
|
222
|
+
description: A Rails.API Engine that use Warden for authenticate users using a RESTful
|
223
|
+
API in a multitenant way
|
224
224
|
email:
|
225
225
|
- manuel.vidaurre@agiltec.com.mx
|
226
226
|
executables: []
|
@@ -254,16 +254,59 @@ files:
|
|
254
254
|
- db/migrate/20130612061604_create_cadenero_v1_accounts.rb
|
255
255
|
- db/migrate/20130612064652_create_cadenero_v1_users.rb
|
256
256
|
- db/migrate/20130612073709_create_cadenero_v1_members.rb
|
257
|
-
- db/
|
257
|
+
- db/seeds.rb
|
258
258
|
- lib/cadenero/active_record_extensions.rb
|
259
259
|
- lib/cadenero/constraints/subdomain_required.rb
|
260
260
|
- lib/cadenero/engine.rb
|
261
261
|
- lib/cadenero/version.rb
|
262
262
|
- lib/cadenero.rb
|
263
|
+
- lib/generators/cadenero/install/templates/initializer.rb
|
264
|
+
- lib/generators/cadenero/install_generator.rb
|
263
265
|
- lib/tasks/cadenero_tasks.rake
|
264
266
|
- MIT-LICENSE
|
265
267
|
- Rakefile
|
266
268
|
- README.md
|
269
|
+
- spec/controllers/cadenero/v1/accounts_controller_spec.rb
|
270
|
+
- spec/dummy/app/controllers/application_controller.rb
|
271
|
+
- spec/dummy/config/application.rb
|
272
|
+
- spec/dummy/config/boot.rb
|
273
|
+
- spec/dummy/config/database.yml
|
274
|
+
- spec/dummy/config/environment.rb
|
275
|
+
- spec/dummy/config/environments/development.rb
|
276
|
+
- spec/dummy/config/environments/production.rb
|
277
|
+
- spec/dummy/config/environments/test.rb
|
278
|
+
- spec/dummy/config/initializers/cadenero.rb
|
279
|
+
- spec/dummy/config/initializers/secret_token.rb
|
280
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
281
|
+
- spec/dummy/config/locales/en.yml
|
282
|
+
- spec/dummy/config/routes.rb
|
283
|
+
- spec/dummy/config.ru
|
284
|
+
- spec/dummy/db/schema.rb
|
285
|
+
- spec/dummy/log/development.log
|
286
|
+
- spec/dummy/log/test.log
|
287
|
+
- spec/dummy/public/404.html
|
288
|
+
- spec/dummy/public/422.html
|
289
|
+
- spec/dummy/public/500.html
|
290
|
+
- spec/dummy/public/favicon.ico
|
291
|
+
- spec/dummy/Rakefile
|
292
|
+
- spec/dummy/README.rdoc
|
293
|
+
- spec/dummy/script/rails
|
294
|
+
- spec/dummy/spec/spec_helper.rb
|
295
|
+
- spec/dummy/tmp/ember-rails/ember-data.js
|
296
|
+
- spec/dummy/tmp/ember-rails/ember.js
|
297
|
+
- spec/features/accounts/sign_up_spec.rb
|
298
|
+
- spec/features/cadenero/account_spec.rb
|
299
|
+
- spec/features/users/sign_in_spec.rb
|
300
|
+
- spec/features/users/sign_up_spec.rb
|
301
|
+
- spec/generators/install_generator_spec.rb
|
302
|
+
- spec/models/cadenero/account_spec.rb
|
303
|
+
- spec/models/cadenero/member_spec.rb
|
304
|
+
- spec/models/cadenero/user_spec.rb
|
305
|
+
- spec/spec_helper.rb
|
306
|
+
- spec/support/factories/account_factory.rb
|
307
|
+
- spec/support/factories/user_factory.rb
|
308
|
+
- spec/support/generator_macros.rb
|
309
|
+
- spec/support/subdomain_helpers.rb
|
267
310
|
homepage: http://www.agiltec.com.mx/ruby/gems/cadenero
|
268
311
|
licenses: []
|
269
312
|
post_install_message:
|
@@ -279,14 +322,55 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
279
322
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
280
323
|
none: false
|
281
324
|
requirements:
|
282
|
-
- - ! '
|
325
|
+
- - ! '>'
|
283
326
|
- !ruby/object:Gem::Version
|
284
|
-
version:
|
327
|
+
version: 1.3.1
|
285
328
|
requirements: []
|
286
329
|
rubyforge_project:
|
287
330
|
rubygems_version: 1.8.23
|
288
331
|
signing_key:
|
289
332
|
specification_version: 3
|
290
333
|
summary: Rails.API Engine for manage multitenant authentication
|
291
|
-
test_files:
|
334
|
+
test_files:
|
335
|
+
- spec/controllers/cadenero/v1/accounts_controller_spec.rb
|
336
|
+
- spec/dummy/app/controllers/application_controller.rb
|
337
|
+
- spec/dummy/config/application.rb
|
338
|
+
- spec/dummy/config/boot.rb
|
339
|
+
- spec/dummy/config/database.yml
|
340
|
+
- spec/dummy/config/environment.rb
|
341
|
+
- spec/dummy/config/environments/development.rb
|
342
|
+
- spec/dummy/config/environments/production.rb
|
343
|
+
- spec/dummy/config/environments/test.rb
|
344
|
+
- spec/dummy/config/initializers/cadenero.rb
|
345
|
+
- spec/dummy/config/initializers/secret_token.rb
|
346
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
347
|
+
- spec/dummy/config/locales/en.yml
|
348
|
+
- spec/dummy/config/routes.rb
|
349
|
+
- spec/dummy/config.ru
|
350
|
+
- spec/dummy/db/schema.rb
|
351
|
+
- spec/dummy/log/development.log
|
352
|
+
- spec/dummy/log/test.log
|
353
|
+
- spec/dummy/public/404.html
|
354
|
+
- spec/dummy/public/422.html
|
355
|
+
- spec/dummy/public/500.html
|
356
|
+
- spec/dummy/public/favicon.ico
|
357
|
+
- spec/dummy/Rakefile
|
358
|
+
- spec/dummy/README.rdoc
|
359
|
+
- spec/dummy/script/rails
|
360
|
+
- spec/dummy/spec/spec_helper.rb
|
361
|
+
- spec/dummy/tmp/ember-rails/ember-data.js
|
362
|
+
- spec/dummy/tmp/ember-rails/ember.js
|
363
|
+
- spec/features/accounts/sign_up_spec.rb
|
364
|
+
- spec/features/cadenero/account_spec.rb
|
365
|
+
- spec/features/users/sign_in_spec.rb
|
366
|
+
- spec/features/users/sign_up_spec.rb
|
367
|
+
- spec/generators/install_generator_spec.rb
|
368
|
+
- spec/models/cadenero/account_spec.rb
|
369
|
+
- spec/models/cadenero/member_spec.rb
|
370
|
+
- spec/models/cadenero/user_spec.rb
|
371
|
+
- spec/spec_helper.rb
|
372
|
+
- spec/support/factories/account_factory.rb
|
373
|
+
- spec/support/factories/user_factory.rb
|
374
|
+
- spec/support/generator_macros.rb
|
375
|
+
- spec/support/subdomain_helpers.rb
|
292
376
|
has_rdoc:
|