devise_russian 0.0.1 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. data/README.md +116 -1
  2. data/app/assets/images/sc/.directory +3 -0
  3. data/app/assets/images/sc/64/.directory +3 -0
  4. data/app/assets/images/sc/64/afisha.png +0 -0
  5. data/app/assets/images/sc/64/blogger.png +0 -0
  6. data/app/assets/images/sc/64/blogru.png +0 -0
  7. data/app/assets/images/sc/64/delicious.png +0 -0
  8. data/app/assets/images/sc/64/deviantart.png +0 -0
  9. data/app/assets/images/sc/64/digg.png +0 -0
  10. data/app/assets/images/sc/64/facebook.png +0 -0
  11. data/app/assets/images/sc/64/feed.png +0 -0
  12. data/app/assets/images/sc/64/flickr.png +0 -0
  13. data/app/assets/images/sc/64/formazon.png +0 -0
  14. data/app/assets/images/sc/64/friendfeed.png +0 -0
  15. data/app/assets/images/sc/64/friendster.png +0 -0
  16. data/app/assets/images/sc/64/furl.png +0 -0
  17. data/app/assets/images/sc/64/gglphone.png +0 -0
  18. data/app/assets/images/sc/64/gmail.png +0 -0
  19. data/app/assets/images/sc/64/google.png +0 -0
  20. data/app/assets/images/sc/64/habrahabr.png +0 -0
  21. data/app/assets/images/sc/64/icq.png +0 -0
  22. data/app/assets/images/sc/64/lastfm.png +0 -0
  23. data/app/assets/images/sc/64/linkedin.png +0 -0
  24. data/app/assets/images/sc/64/livejournal.png +0 -0
  25. data/app/assets/images/sc/64/magnolia.png +0 -0
  26. data/app/assets/images/sc/64/mailru.png +0 -0
  27. data/app/assets/images/sc/64/memori.png +0 -0
  28. data/app/assets/images/sc/64/mixx.png +0 -0
  29. data/app/assets/images/sc/64/moikrug.png +0 -0
  30. data/app/assets/images/sc/64/myspace.png +0 -0
  31. data/app/assets/images/sc/64/netvibes.png +0 -0
  32. data/app/assets/images/sc/64/newsvine.png +0 -0
  33. data/app/assets/images/sc/64/odnoklassniki.png +0 -0
  34. data/app/assets/images/sc/64/open_id.png +0 -0
  35. data/app/assets/images/sc/64/picasa.png +0 -0
  36. data/app/assets/images/sc/64/plurk.png +0 -0
  37. data/app/assets/images/sc/64/pownce.png +0 -0
  38. data/app/assets/images/sc/64/reddit.png +0 -0
  39. data/app/assets/images/sc/64/skype.png +0 -0
  40. data/app/assets/images/sc/64/stumbleupon.png +0 -0
  41. data/app/assets/images/sc/64/technorati.png +0 -0
  42. data/app/assets/images/sc/64/twitter.png +0 -0
  43. data/app/assets/images/sc/64/vimeo.png +0 -0
  44. data/app/assets/images/sc/64/vkontakte.png +0 -0
  45. data/app/assets/images/sc/64/webshots.png +0 -0
  46. data/app/assets/images/sc/64/wordpress.png +0 -0
  47. data/app/assets/images/sc/64/yahoo.png +0 -0
  48. data/app/assets/images/sc/64/yandex.png +0 -0
  49. data/app/assets/images/sc/64/yelp.png +0 -0
  50. data/app/assets/images/sc/64/you_tube.png +0 -0
  51. data/app/assets/images/sc/brand/facebook/facebook_128.png +0 -0
  52. data/app/assets/images/sc/brand/facebook/facebook_256.png +0 -0
  53. data/app/assets/images/sc/brand/facebook/facebook_32.png +0 -0
  54. data/app/assets/images/sc/brand/facebook/facebook_64.png +0 -0
  55. data/app/assets/images/sc/brand/github/github_128.png +0 -0
  56. data/app/assets/images/sc/brand/github/github_256.png +0 -0
  57. data/app/assets/images/sc/brand/github/github_32.png +0 -0
  58. data/app/assets/images/sc/brand/github/github_64.png +0 -0
  59. data/app/assets/images/sc/brand/google/google_128 copy.png +0 -0
  60. data/app/assets/images/sc/brand/google/google_128.png +0 -0
  61. data/app/assets/images/sc/brand/google/google_256 copy.png +0 -0
  62. data/app/assets/images/sc/brand/google/google_256.png +0 -0
  63. data/app/assets/images/sc/brand/google/google_32.png +0 -0
  64. data/app/assets/images/sc/brand/google/google_64 copy.png +0 -0
  65. data/app/assets/images/sc/brand/google/google_apps_32.png +0 -0
  66. data/app/assets/images/sc/brand/google/google_apps_64.png +0 -0
  67. data/app/assets/images/sc/brand/mailru/MailRuApi_32.png +0 -0
  68. data/app/assets/images/sc/brand/mailru/mailru-iphone.png +0 -0
  69. data/app/assets/images/sc/brand/mailru/mailru_64.png +0 -0
  70. data/app/assets/images/sc/brand/mailru/openid_128.png +0 -0
  71. data/app/assets/images/sc/brand/mailru/openid_256.png +0 -0
  72. data/app/assets/images/sc/brand/mailru/openid_32.png +0 -0
  73. data/app/assets/images/sc/brand/mailru/openid_64.png +0 -0
  74. data/app/assets/images/sc/brand/twitter/twitter_128.png +0 -0
  75. data/app/assets/images/sc/brand/twitter/twitter_256.png +0 -0
  76. data/app/assets/images/sc/brand/twitter/twitter_32.png +0 -0
  77. data/app/assets/images/sc/brand/twitter/twitter_64.png +0 -0
  78. data/app/assets/images/sc/brand/vkontakte/vkontakte_128.png +0 -0
  79. data/app/assets/images/sc/brand/vkontakte/vkontakte_256.png +0 -0
  80. data/app/assets/images/sc/brand/vkontakte/vkontakte_32.png +0 -0
  81. data/app/assets/images/sc/brand/vkontakte/vkontakte_64.png +0 -0
  82. data/app/assets/stylesheets/sc.css +12 -0
  83. data/app/controllers/authentications_controller.rb +66 -0
  84. data/app/controllers/registrations_controller.rb +31 -0
  85. data/app/models/authentication.rb +35 -0
  86. data/app/views/authentications/_collection.html.erb +37 -0
  87. data/app/views/authentications/index.html.erb +2 -0
  88. data/app/views/devise/confirmations/new.html.erb +11 -0
  89. data/app/views/devise/mailer/_bottom.html.erb +5 -0
  90. data/app/views/devise/mailer/confirmation_instructions.html.erb +4 -0
  91. data/app/views/devise/mailer/reset_password_instructions.html.erb +6 -0
  92. data/app/views/devise/mailer/unlock_instructions.html.erb +5 -0
  93. data/app/views/devise/passwords/edit.html.erb +14 -0
  94. data/app/views/devise/passwords/new.html.erb +11 -0
  95. data/app/views/devise/registrations/edit.html.erb +18 -0
  96. data/app/views/devise/registrations/new.html.erb +19 -0
  97. data/app/views/devise/sessions/new.html.erb +16 -0
  98. data/app/views/devise/shared/_links.erb +17 -0
  99. data/app/views/devise/shared/_social_links.html.erb +10 -0
  100. data/app/views/devise/unlocks/new.html.erb +11 -0
  101. data/config/ca-bundle.crt +5182 -0
  102. data/config/locales/devise.ru.yml +41 -0
  103. data/devise_russian.gemspec +2 -0
  104. data/lib/devise_russian/engine.rb +11 -0
  105. data/lib/devise_russian/models/base.rb +50 -0
  106. data/lib/devise_russian/version.rb +1 -1
  107. data/lib/devise_russian.rb +3 -4
  108. metadata +137 -2
@@ -0,0 +1,41 @@
1
+ ru:
2
+ errors:
3
+ messages:
4
+ not_found: "не найдено"
5
+ already_confirmed: "уже было подтверждено"
6
+ not_locked: "не было заблокировано"
7
+
8
+ devise:
9
+ failure:
10
+ unauthenticated: 'Вам нужно войти или зарегистрироваться перед тем, как продолжить.'
11
+ unconfirmed: 'Вам нужно подтвердить вашу учётную запись перед тем, как продолжить.'
12
+ locked: 'Ваша учётная запись заблокирована.'
13
+ invalid: 'Неверный адрес электронной почты или неверный пароль.'
14
+ invalid_token: 'Ошибочный токен аутентификации.'
15
+ timeout: 'Ваша рабочая сессия устарела, пожалуйста, войдите снова, чтобы продолжить.'
16
+ inactive: 'Ваша учётная запись ещё не активирована.'
17
+ sessions:
18
+ signed_in: 'Успешно вошли.'
19
+ signed_out: 'Успешно вышли.'
20
+ signed_already: 'Вы уже на сайте.'
21
+ passwords:
22
+ send_instructions: 'Вы получите письмо по электронной почте с инструкциями, как сбросить ваш пароль, в течение ближайших нескольких минут.'
23
+ updated: 'Ваш пароль был успешно изменён. Вы вошли на сайт.'
24
+ confirmations:
25
+ send_instructions: 'Вы получите письмо по электронной почте с инструкциями, как подтвердить вашу учётную запись, в течение ближайших нескольких минут.'
26
+ confirmed: 'Ваша учётная запись успешно подтверждена. Вы вошли на сайт.'
27
+ registrations:
28
+ signed_up: 'Вы успешно зарегистрировались. Подтверждение было выслано на ваш адрес электронной почты.'
29
+ signed_up_but_unconfirmed: 'Вы успешно зарегистрировались. Мы отправили вам письмо со ссылкой для активации аккаунта.'
30
+ updated: 'Вы успешно обновили вашу учётную запись.'
31
+ destroyed: 'Пока! Ваша учётная запись успешно прекратила своё существование. Мы будем рады увидеть вас снова позднее.'
32
+ unlocks:
33
+ send_instructions: 'Вы получите письмо по электронной почте с инструкциями, как разблокировать вашу учётную запись, в течение ближайших нескольких минут.'
34
+ unlocked: 'Ваша учётная запись успешно разблокирована. Вы вошли на сайт.'
35
+ mailer:
36
+ confirmation_instructions:
37
+ subject: 'Инструкции по подтверждению'
38
+ reset_password_instructions:
39
+ subject: 'Инструкции по сбросу пароля'
40
+ unlock_instructions:
41
+ subject: 'Инструкции по разблокировке'
@@ -18,4 +18,6 @@ Gem::Specification.new do |gem|
18
18
  gem.require_paths = ["lib"]
19
19
 
20
20
  gem.add_dependency "devise", ">= 2.2.3"
21
+ gem.add_dependency "omniauth", ">= 1.1.3"
22
+ gem.add_dependency "omniauth-oauth2", ">= 1.1.1"
21
23
  end
@@ -0,0 +1,11 @@
1
+ module DeviseRussian
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace DeviseRussian
4
+ engine_name 'devise_russian'
5
+
6
+ initializer "devise_russian.includers" do |app|
7
+ # ActionController::Base.send :include, DeviseRussian::Controllers::Base
8
+ ActiveRecord::Base.send :include, DeviseRussian::Models::Base
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,50 @@
1
+ # coding: utf-8
2
+ module DeviseRussian
3
+ module Models
4
+ module Base
5
+ def self.included(base)
6
+ base.extend ClassMethods
7
+ end
8
+
9
+ module ClassMethods
10
+ def omniauthable
11
+ has_many :authentications, :dependent => :destroy
12
+ unless included_modules.include? InstanceMethods
13
+ include InstanceMethods
14
+ end
15
+ end
16
+ end
17
+
18
+ module InstanceMethods
19
+ def apply_omniauth(omniauth, with_self=false)
20
+ provider = omniauth['provider']
21
+ uid = omniauth['uid']
22
+ user_email = omniauth['extra']['raw_info']['email'] rescue nil
23
+ user_name = omniauth['extra']['raw_info']['first_name'] rescue nil
24
+
25
+ # Facebook omniauth: #<OmniAuth::AuthHash credentials=#<Hashie::Mash expires=true expires_at=1368497603 token="AAAHyrzX1f8gBAEZBgtqQZCcLHgRDMbioJ6cltTxqTd3qlnvY1JXAtOivUKu8DzVfKf3f2x7ZCbZAF6qciuww2qVGVrFq6yoVxwZCHPZCn0HgZDZD"> extra=#<Hashie::Mash raw_info=#<Hashie::Mash email="lapida@ya.ru" first_name="Lipada" gender="male" hometown=#<Hashie::Mash id="111803002172556" name="Tomsk, Russia"> id="100005327070305" last_name="Ru" link="http://www.facebook.com/profile.php?id=100005327070305" locale="ru_RU" name="Lipada Ru" timezone=7 updated_time="2013-02-20T15:25:45+0000" verified=true>> info=#<OmniAuth::AuthHash::InfoHash email="lapida@ya.ru" first_name="Lipada" image="http://graph.facebook.com/100005327070305/picture?type=square" last_name="Ru" name="Lipada Ru" urls=#<Hashie::Mash Facebook="http://www.facebook.com/profile.php?id=100005327070305"> verified=true> provider="facebook" uid="100005327070305">
26
+
27
+ # Vkontakte omniauth: #<OmniAuth::AuthHash credentials=#<Hashie::Mash expires=true expires_at=1363456283 token="46de998d8c438603e0d92af694d47744260b89f1e493ffa2403c41ca98aaf9a26aae375a384e0817711c5"> extra=#<Hashie::Mash raw_info=#<Hashie::Mash city="144" country="1" first_name="Lipada" last_name="Ru" nickname="" online=0 photo="https://vk.com/images/camera_c.gif" photo_big="https://vk.com/images/camera_a.gif" screen_name="id201853841" sex=2 uid=201853841>> info=#<OmniAuth::AuthHash::InfoHash first_name="Lipada" image="https://vk.com/images/camera_c.gif" last_name="Ru" location="Россия, Томск" name="Lipada Ru" nickname="" urls=#<Hashie::Mash Vkontakte="http://vk.com/id201853841">> provider="vkontakte" uid=201853841>
28
+
29
+ # Odnoklassniki omniauth: #<OmniAuth::AuthHash credentials=#<Hashie::Mash expires=false token="2aipa.2-71160004l6v6h3r406y3k6bsrv9"> extra=#<Hashie::Mash raw_info=#<Hashie::Mash age=25 birthday="1987-07-14" first_name="Lipada" gender="male" has_email=true last_name="ru" locale="ru" location=#<Hashie::Mash city="Томск" country="RUSSIAN_FEDERATION"> name="Lipada ru" online="web" pic_1="http://i503.odnoklassniki.ru/res/stub_50x50.gif" pic_2="http://usd8.odnoklassniki.ru/res/stub_128x96.gif" uid="555839750549">> info=#<OmniAuth::AuthHash::InfoHash first_name="Lipada" image="http://i503.odnoklassniki.ru/res/stub_50x50.gif" last_name="ru" name="Lipada ru" urls=#<Hashie::Mash Odnoklassniki="http://www.odnoklassniki.ru/profile/555839750549">> provider="odnoklassniki" uid="555839750549">
30
+
31
+ if with_self
32
+ self.email = user_email if user_email && self.email.blank?
33
+ self.name = user_name if user_name && self.name.blank?
34
+ end
35
+
36
+ self.authentications.build(
37
+ :provider => provider,
38
+ :uid => uid,
39
+ :email => user_email,
40
+ :name => user_name
41
+ )
42
+ end
43
+
44
+ def password_required?
45
+ (authentications.empty? || !password.blank?) && super
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module DeviseRussian
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.11"
3
3
  end
@@ -1,5 +1,4 @@
1
+ # coding: utf-8
2
+ require "devise_russian/models/base"
3
+ require "devise_russian/engine"
1
4
  require "devise_russian/version"
2
-
3
- module DeviseRussian
4
- # Your code goes here...
5
- end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_russian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.11
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-03-17 00:00:00.000000000 Z
12
+ date: 2013-03-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise
@@ -27,6 +27,38 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 2.2.3
30
+ - !ruby/object:Gem::Dependency
31
+ name: omniauth
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 1.1.3
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.1.3
46
+ - !ruby/object:Gem::Dependency
47
+ name: omniauth-oauth2
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.1.1
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.1
30
62
  description: Часто используемые наработки по джему Devise. Включает решение по авторизации
31
63
  в социальных сетях
32
64
  email:
@@ -40,8 +72,111 @@ files:
40
72
  - LICENSE.txt
41
73
  - README.md
42
74
  - Rakefile
75
+ - app/assets/images/sc/.directory
76
+ - app/assets/images/sc/64/.directory
77
+ - app/assets/images/sc/64/afisha.png
78
+ - app/assets/images/sc/64/blogger.png
79
+ - app/assets/images/sc/64/blogru.png
80
+ - app/assets/images/sc/64/delicious.png
81
+ - app/assets/images/sc/64/deviantart.png
82
+ - app/assets/images/sc/64/digg.png
83
+ - app/assets/images/sc/64/facebook.png
84
+ - app/assets/images/sc/64/feed.png
85
+ - app/assets/images/sc/64/flickr.png
86
+ - app/assets/images/sc/64/formazon.png
87
+ - app/assets/images/sc/64/friendfeed.png
88
+ - app/assets/images/sc/64/friendster.png
89
+ - app/assets/images/sc/64/furl.png
90
+ - app/assets/images/sc/64/gglphone.png
91
+ - app/assets/images/sc/64/gmail.png
92
+ - app/assets/images/sc/64/google.png
93
+ - app/assets/images/sc/64/habrahabr.png
94
+ - app/assets/images/sc/64/icq.png
95
+ - app/assets/images/sc/64/lastfm.png
96
+ - app/assets/images/sc/64/linkedin.png
97
+ - app/assets/images/sc/64/livejournal.png
98
+ - app/assets/images/sc/64/magnolia.png
99
+ - app/assets/images/sc/64/mailru.png
100
+ - app/assets/images/sc/64/memori.png
101
+ - app/assets/images/sc/64/mixx.png
102
+ - app/assets/images/sc/64/moikrug.png
103
+ - app/assets/images/sc/64/myspace.png
104
+ - app/assets/images/sc/64/netvibes.png
105
+ - app/assets/images/sc/64/newsvine.png
106
+ - app/assets/images/sc/64/odnoklassniki.png
107
+ - app/assets/images/sc/64/open_id.png
108
+ - app/assets/images/sc/64/picasa.png
109
+ - app/assets/images/sc/64/plurk.png
110
+ - app/assets/images/sc/64/pownce.png
111
+ - app/assets/images/sc/64/reddit.png
112
+ - app/assets/images/sc/64/skype.png
113
+ - app/assets/images/sc/64/stumbleupon.png
114
+ - app/assets/images/sc/64/technorati.png
115
+ - app/assets/images/sc/64/twitter.png
116
+ - app/assets/images/sc/64/vimeo.png
117
+ - app/assets/images/sc/64/vkontakte.png
118
+ - app/assets/images/sc/64/webshots.png
119
+ - app/assets/images/sc/64/wordpress.png
120
+ - app/assets/images/sc/64/yahoo.png
121
+ - app/assets/images/sc/64/yandex.png
122
+ - app/assets/images/sc/64/yelp.png
123
+ - app/assets/images/sc/64/you_tube.png
124
+ - app/assets/images/sc/brand/facebook/facebook_128.png
125
+ - app/assets/images/sc/brand/facebook/facebook_256.png
126
+ - app/assets/images/sc/brand/facebook/facebook_32.png
127
+ - app/assets/images/sc/brand/facebook/facebook_64.png
128
+ - app/assets/images/sc/brand/github/github_128.png
129
+ - app/assets/images/sc/brand/github/github_256.png
130
+ - app/assets/images/sc/brand/github/github_32.png
131
+ - app/assets/images/sc/brand/github/github_64.png
132
+ - app/assets/images/sc/brand/google/google_128 copy.png
133
+ - app/assets/images/sc/brand/google/google_128.png
134
+ - app/assets/images/sc/brand/google/google_256 copy.png
135
+ - app/assets/images/sc/brand/google/google_256.png
136
+ - app/assets/images/sc/brand/google/google_32.png
137
+ - app/assets/images/sc/brand/google/google_64 copy.png
138
+ - app/assets/images/sc/brand/google/google_apps_32.png
139
+ - app/assets/images/sc/brand/google/google_apps_64.png
140
+ - app/assets/images/sc/brand/mailru/MailRuApi_32.png
141
+ - app/assets/images/sc/brand/mailru/mailru-iphone.png
142
+ - app/assets/images/sc/brand/mailru/mailru_64.png
143
+ - app/assets/images/sc/brand/mailru/openid_128.png
144
+ - app/assets/images/sc/brand/mailru/openid_256.png
145
+ - app/assets/images/sc/brand/mailru/openid_32.png
146
+ - app/assets/images/sc/brand/mailru/openid_64.png
147
+ - app/assets/images/sc/brand/twitter/twitter_128.png
148
+ - app/assets/images/sc/brand/twitter/twitter_256.png
149
+ - app/assets/images/sc/brand/twitter/twitter_32.png
150
+ - app/assets/images/sc/brand/twitter/twitter_64.png
151
+ - app/assets/images/sc/brand/vkontakte/vkontakte_128.png
152
+ - app/assets/images/sc/brand/vkontakte/vkontakte_256.png
153
+ - app/assets/images/sc/brand/vkontakte/vkontakte_32.png
154
+ - app/assets/images/sc/brand/vkontakte/vkontakte_64.png
155
+ - app/assets/stylesheets/sc.css
156
+ - app/controllers/authentications_controller.rb
157
+ - app/controllers/registrations_controller.rb
158
+ - app/models/authentication.rb
159
+ - app/views/authentications/_collection.html.erb
160
+ - app/views/authentications/index.html.erb
161
+ - app/views/devise/confirmations/new.html.erb
162
+ - app/views/devise/mailer/_bottom.html.erb
163
+ - app/views/devise/mailer/confirmation_instructions.html.erb
164
+ - app/views/devise/mailer/reset_password_instructions.html.erb
165
+ - app/views/devise/mailer/unlock_instructions.html.erb
166
+ - app/views/devise/passwords/edit.html.erb
167
+ - app/views/devise/passwords/new.html.erb
168
+ - app/views/devise/registrations/edit.html.erb
169
+ - app/views/devise/registrations/new.html.erb
170
+ - app/views/devise/sessions/new.html.erb
171
+ - app/views/devise/shared/_links.erb
172
+ - app/views/devise/shared/_social_links.html.erb
173
+ - app/views/devise/unlocks/new.html.erb
174
+ - config/ca-bundle.crt
175
+ - config/locales/devise.ru.yml
43
176
  - devise_russian.gemspec
44
177
  - lib/devise_russian.rb
178
+ - lib/devise_russian/engine.rb
179
+ - lib/devise_russian/models/base.rb
45
180
  - lib/devise_russian/version.rb
46
181
  homepage: https://github.com/vav/devise_russian
47
182
  licenses: []