pontiac 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +32 -0
  4. data/Rakefile +27 -0
  5. data/app/controllers/pontiac/application_controller.rb +7 -0
  6. data/app/controllers/pontiac/omniauth_callbacks_controller.rb +25 -0
  7. data/app/controllers/pontiac/sessions_controller.rb +24 -0
  8. data/app/helpers/pontiac/application_helper.rb +19 -0
  9. data/app/models/secret_setting.rb +5 -0
  10. data/app/models/shop.rb +22 -0
  11. data/app/views/pontiac/sessions/new.html.haml +8 -0
  12. data/lib/generators/pontiac/USAGE +21 -0
  13. data/lib/generators/pontiac/pontiac_generator.rb +39 -0
  14. data/lib/generators/pontiac/templates/README +18 -0
  15. data/lib/generators/pontiac/templates/app/assets/javascripts/application.js.coffee +17 -0
  16. data/lib/generators/pontiac/templates/app/assets/stylesheets/application.css.scss.erb +71 -0
  17. data/lib/generators/pontiac/templates/app/controllers/application_controller.rb +4 -0
  18. data/lib/generators/pontiac/templates/app/controllers/home_controller.rb +13 -0
  19. data/lib/generators/pontiac/templates/app/helpers/home_helper.rb +17 -0
  20. data/lib/generators/pontiac/templates/app/models/shop.rb +4 -0
  21. data/lib/generators/pontiac/templates/app/views/home/index.html.haml +37 -0
  22. data/lib/generators/pontiac/templates/app/views/layouts/application.html.haml +39 -0
  23. data/lib/generators/pontiac/templates/config/app_secret_config.yml.erb +33 -0
  24. data/lib/generators/pontiac/templates/db/migrate/create_shops.rb +11 -0
  25. data/lib/generators/pontiac/templates/spec/factories/shops.rb +10 -0
  26. data/lib/pontiac/engine.rb +49 -0
  27. data/lib/pontiac/helpers.rb +8 -0
  28. data/lib/pontiac/rails/routes.rb +19 -0
  29. data/lib/pontiac/version.rb +3 -0
  30. data/lib/pontiac.rb +15 -0
  31. data/lib/tasks/pontiac_tasks.rake +4 -0
  32. metadata +200 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZWZlZWI2M2JmYjcwZGM3MjlkYTVkNTU4YzA2OTgyMjYwMjkyOWZmNA==
5
+ data.tar.gz: !binary |-
6
+ ZWM4YjY3M2E1ZGIwNjI1YzM2YjAzZmI4NDYzMTQ1N2Y1ODZlNzM0OA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MDgxZTRmZWU3ZTc4MjU4Zjg3NjAwYWNhNWEzZmUxMmViNjhkYTA2ZGZlYWJh
10
+ ZWU0ODM5NzZjNTViYTY3YWE0ODVjMDQ4OWU0MWFhMjhhZWI0Y2Y0ZjI3YjE1
11
+ N2VjNDQ5YTFkOTZjNzc0OWY2YTY0OWFlMDAzMjIyODcyOGNhNjI=
12
+ data.tar.gz: !binary |-
13
+ MTE1MTc2MWRkYzc2YmZjZWI5ZDVkODQwNjNkNjMwNzc0ODdjYTI0YWQ3MmUw
14
+ MDZiMjdlMGRhZjNlZTZkOWMwOTViMmRiMTZlYWIyZjNhZjJlN2MzNDVmODJh
15
+ YzJiZGJiZjI1M2FmODA1MTY4NzYyNWVkZGZmZTNiODU3NzVkYmM=
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2014
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,32 @@
1
+ # Pontiac
2
+
3
+ Gem engine for applications in the system PayPonty
4
+
5
+ ## Install
6
+
7
+ $ echo "gem 'pontiac'" >> Gemfile
8
+ $ bundle
9
+
10
+ ## Step 1
11
+
12
+ $ rails g pontiac client_id client_secret
13
+ $ bundle exec rake db:create db:migrate
14
+
15
+ ## Step 2
16
+
17
+ Edit `config/app_secret_config.yml`
18
+
19
+ defaults: &defaults
20
+ oauth:
21
+ client_id: 'dffd069fa92096022628a1f7eb174bc85d90278b8c90ec7ebadfbd94924bd2b8'
22
+ secret: 'e1805141c81c496e4779371f41263c9f74ac2ffd3728302296b8af10b64d9c9b'
23
+ scope: 'read_products read_orders'
24
+ redirect_uri: '/callback'
25
+
26
+ ## Step 3
27
+
28
+ Start server
29
+
30
+ $ rails s
31
+
32
+ [http://localhost:3000](http://localhost:3000)
data/Rakefile ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'Pontiac'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
25
+
26
+ Bundler::GemHelper.install_tasks
27
+
@@ -0,0 +1,7 @@
1
+ module Pontiac
2
+ class ApplicationController < ActionController::Base
3
+ include ApplicationHelper
4
+ protect_from_forgery
5
+ layout 'application'
6
+ end
7
+ end
@@ -0,0 +1,25 @@
1
+ module Pontiac
2
+ class OmniauthCallbacksController < ApplicationController
3
+ skip_before_filter :authenticate_shop!, only: :payponty
4
+ before_filter :assert_omniauth_auth
5
+
6
+ def payponty
7
+ shop = Shop.find_for_payponty_oauth(request.env["omniauth.auth"])
8
+ sign_in_and_redirect shop
9
+ end
10
+
11
+ protected
12
+ def assert_omniauth_auth
13
+ unless request.env['omniauth.auth']
14
+ flash[:error] = "Could not log in to store."
15
+ redirect_to main_app.login_path
16
+ end
17
+ end
18
+
19
+ def sign_in_and_redirect(shop)
20
+ cookies.permanent.signed[:shop_id] = shop.id
21
+ redirect_to main_app.root_path
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ module Pontiac
2
+ class SessionsController < ApplicationController
3
+ skip_before_filter :authenticate_shop!, only: [:new, :payponty_login]
4
+
5
+ def new
6
+ if params[:shop].present?
7
+ redirect_to "/auth/payponty?shop=#{params[:shop].to_s.strip}"
8
+ end
9
+ end
10
+
11
+ def payponty_login
12
+ if signed_in?
13
+ redirect_to main_app.root_path
14
+ else
15
+ redirect_to main_app.login_path(shop: params[:shop])
16
+ end
17
+ end
18
+
19
+ def destroy
20
+ cookies.delete(:shop_id)
21
+ redirect_to main_app.root_path
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,19 @@
1
+ module Pontiac
2
+ module ApplicationHelper
3
+ def authenticate_shop!
4
+ redirect_to main_app.root_path unless signed_in?
5
+ end
6
+
7
+ def signed_in?
8
+ !current_shop.nil?
9
+ end
10
+
11
+ def current_shop
12
+ @current_shop ||= (cookies.signed[:shop_id] && Shop.find_by_id(cookies.signed[:shop_id]))
13
+ end
14
+
15
+ def shop_url
16
+ "http://#{current_shop.fwm_domain}"
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ class SecretSetting < Settingslogic
2
+ source "#{Rails.root}/config/app_secret_config.yml"
3
+ namespace Rails.env
4
+ load!
5
+ end
@@ -0,0 +1,22 @@
1
+ class Shop < ActiveRecord::Base
2
+ attr_accessible :shop_id, :name, :fwm_domain
3
+
4
+ def self.find_for_payponty_oauth(data)
5
+ shop_data = data.extra.raw_info.shop
6
+ shop = where(shop_id: shop_data.id).first_or_create! name: shop_data.name, fwm_domain: shop_data.fwm_domain
7
+ shop.access_token = data.credentials.token
8
+ shop.tap(&:save)
9
+ end
10
+
11
+ def use_kitpay
12
+ Kitpay.setup url: self.fwm_domain, access_token: self.access_token
13
+ end
14
+
15
+ def admin_url
16
+ "#{SecretSetting.fwm_domain.protocol}#{self.fwm_domain}/admin"
17
+ end
18
+
19
+ def front_url
20
+ "http://#{self.fwm_domain}"
21
+ end
22
+ end
@@ -0,0 +1,8 @@
1
+ .content
2
+ .page-header
3
+ %h1
4
+ Вход
5
+ %small введите URL магазина
6
+ = form_tag main_app.login_path, :class => 'form-search' do
7
+ = text_field_tag 'shop', nil, :placeholder => 'URL магазина', :class => 'btn-large', :id => 'shop'
8
+ = submit_tag 'Войти', :class => 'btn btn-primary btn-large'
@@ -0,0 +1,21 @@
1
+ Description:
2
+ Generator Pontiac files.
3
+
4
+ Example:
5
+ rails generate pontiac client_id client_secret
6
+
7
+ This will remove:
8
+ app/assets/javascripts/application.js
9
+ app/assets/stylesheets/application_helpern.css
10
+ app/views/layouts/application.html.erb
11
+ public/index.html
12
+
13
+ This will create:
14
+ app/assets/javascripts/application.js.coffee
15
+ app/assets/stylesheets/application_helpernon.css.less.erb
16
+ app/controllers/home_controller.rb
17
+ app/helpers/home_helper.rb
18
+ app/views/home/
19
+ app/views/layouts/application.html.haml
20
+ config/app_secret_config.yml
21
+ db/migrate/create_shops.rb
@@ -0,0 +1,39 @@
1
+ require 'rails/generators/active_record'
2
+
3
+ class PontiacGenerator < Rails::Generators::Base
4
+ include Rails::Generators::Migration
5
+ namespace 'pontiac'
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ argument :client_id , type: :string, required: true
9
+ argument :client_secret, type: :string, required: true
10
+
11
+ def copy_files
12
+ directory 'app'
13
+ template 'config/app_secret_config.yml.erb', 'config/app_secret_config.yml'
14
+ end
15
+
16
+ def remove_files
17
+ remove_file 'public/index.html'
18
+ remove_file 'app/assets/javascripts/application.js'
19
+ remove_file 'app/assets/stylesheets/application.css'
20
+ remove_file 'app/views/layouts/application.html.erb'
21
+ end
22
+
23
+ def add_routes
24
+ route "use_pontiac"
25
+ route "root :to => 'home#index'"
26
+ end
27
+
28
+ def install_migration
29
+ migration_template 'db/migrate/create_shops.rb', 'db/migrate/create_shops.rb'
30
+ end
31
+
32
+ def show
33
+ readme "README"
34
+ end
35
+
36
+ def self.next_migration_number(dirname)
37
+ ActiveRecord::Generators::Base.next_migration_number(dirname)
38
+ end
39
+ end
@@ -0,0 +1,18 @@
1
+ ===============================================================================
2
+
3
+ There is something that you need to do before you use Pontiac.
4
+
5
+ Step 1.
6
+ UNCOMMENT the line below in Gemfile
7
+ gem 'therubyracer', :platforms => :ruby
8
+
9
+ Step 2.
10
+ $ bundle
11
+
12
+ Step 3.
13
+ $ rake db:create db:migrate
14
+
15
+ Step 4.
16
+ $ rails server
17
+
18
+ ===============================================================================
@@ -0,0 +1,17 @@
1
+ #= require jquery
2
+ #= require jquery_ujs
3
+ #= require_tree .
4
+
5
+ #= require bootstrap-dropdown
6
+ #= require bootstrap-transition
7
+ #= require bootstrap-collapse
8
+ ###
9
+ #= require bootstrap-tooltip
10
+ ###
11
+
12
+ $(document).ready ->
13
+ $('#shop').focus()
14
+
15
+ ###
16
+ #$('#main').tooltip selector: "span[rel=tooltip], a[rel=tooltip]"
17
+ ###
@@ -0,0 +1,71 @@
1
+ /*
2
+ *= require_tree .
3
+ */
4
+
5
+ // Core variables and mixins
6
+ @import "bootstrap/variables"; // Modify this for custom colors, font-sizes, etc
7
+ @import "bootstrap/mixins";
8
+
9
+ // CSS Reset
10
+ @import "bootstrap/reset";
11
+
12
+ // Grid system and page structure
13
+ @import "bootstrap/scaffolding";
14
+ @import "bootstrap/grid";
15
+ @import "bootstrap/layouts";
16
+
17
+ // Base CSS
18
+ @import "bootstrap/type";
19
+ //@import "bootstrap/code";
20
+ @import "bootstrap/forms";
21
+ @import "bootstrap/tables";
22
+
23
+ // Components: common
24
+ @import "bootstrap/sprites";
25
+ @import "bootstrap/dropdowns";
26
+ @import "bootstrap/wells";
27
+ @import "bootstrap/component-animations";
28
+ //@import "bootstrap/close";
29
+
30
+ // Components: Buttons & Alerts
31
+ @import "bootstrap/buttons";
32
+ //@import "bootstrap/button-groups";
33
+ @import "bootstrap/alerts"; // Note: alerts share common CSS with buttons and thus have styles in buttons
34
+
35
+ // Components: Nav
36
+ @import "bootstrap/navs";
37
+ @import "bootstrap/navbar";
38
+ //@import "bootstrap/breadcrumbs";
39
+ //@import "bootstrap/pagination";
40
+ //@import "bootstrap/pager";
41
+
42
+ // Components: Popovers
43
+ //@import "bootstrap/modals";
44
+ @import "bootstrap/tooltip";
45
+ //@import "bootstrap/popovers";
46
+
47
+ // Components: Misc
48
+ //@import "bootstrap/thumbnails";
49
+ @import "bootstrap/labels-badges";
50
+ //@import "bootstrap/progress-bars";
51
+ @import "bootstrap/accordion";
52
+ //@import "bootstrap/carousel";
53
+ @import "bootstrap/hero-unit";
54
+
55
+ // Utility classes
56
+ @import "bootstrap/utilities"; // Has to be last to override when necessary
57
+
58
+ body {
59
+ margin-top: 50px;
60
+ margin-bottom: 100px; }
61
+
62
+ .accordion-body {
63
+ background: #F9F9F9;
64
+ .accordion-inner {
65
+ padding: 20px; }}
66
+
67
+ .footer {
68
+ color: #333;
69
+ text-align: center;
70
+ margin-top: 45px;
71
+ padding: 35px 0 36px; }
@@ -0,0 +1,4 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+ prepend_before_filter :authenticate_shop!
4
+ end
@@ -0,0 +1,13 @@
1
+ class HomeController < ApplicationController
2
+ skip_before_filter :authenticate_shop!, only: :index
3
+
4
+ def index
5
+ if signed_in?
6
+ current_shop.use_kitpay
7
+ @orders = Kitpay.orders per_page: 3
8
+ @products = Kitpay.products per_page: 5
9
+ else
10
+ redirect_to login_path
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ module HomeHelper
2
+
3
+ def financial_class(financial_status)
4
+ case financial_status
5
+ when 'pending' then 'label-warning'
6
+ when 'paid' then 'label-success'
7
+ end
8
+ end
9
+
10
+ def fulfillment_class(fulfillment_status)
11
+ case fulfillment_status
12
+ when 'partial' then 'label-warning'
13
+ when 'fulfilled' then 'label-success'
14
+ end
15
+ end
16
+
17
+ end
@@ -0,0 +1,4 @@
1
+ require "#{Pontiac::Engine.models_dir}/shop"
2
+ class Shop
3
+ attr_accessible :shop_id, :name, :fwm_domain
4
+ end
@@ -0,0 +1,37 @@
1
+ .content
2
+ %h2 Заказы
3
+ %table.table.table-striped
4
+ %thead
5
+ %tr
6
+ %th Номер заказа
7
+ %th Клиент
8
+ %th Статус оплаты
9
+ %th Статус доставки
10
+ %th Сумма
11
+ %tbody
12
+ -@orders.each do |order|
13
+ %tr
14
+ %td=link_to order['name'], "#{shop_url}/admin/orders/#{order['id']}", target: :_blank
15
+ %td=order['customer']['name']
16
+ %td
17
+ %span.label(class="#{financial_class(order['financial_status'])}")
18
+ =order['financial_status_name']
19
+ %td
20
+ %span.label(class="#{fulfillment_class(order['fulfillment_status'])}")
21
+ =order['fulfillment_status_name']
22
+ %td=order['total_price']
23
+
24
+ %h2 Товары
25
+ #product-accordion.accordion
26
+ -@products.each do |product|
27
+ .accordion-group
28
+ .accordion-heading
29
+ %a.accordion-toggle{href: "#product-#{product['id']}", data: {toggle: 'collapse', parent: '#product-accordion'}}
30
+ =product['title']
31
+ %div.accordion-body.collapse(id="product-#{product['id']}")
32
+ .accordion-inner
33
+ %p==Тип товара: #{product['product_type']}
34
+ %p==Производитель: #{product['vendor']}
35
+ =raw product['body_html']
36
+ %br/
37
+ %p=link_to "Изменить этот товар", "#{shop_url}/admin/products/#{product['id']}", class: 'btn btn-primary', target: :_blank
@@ -0,0 +1,39 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title Тестовое приложение
5
+ = stylesheet_link_tag "application"
6
+ = javascript_include_tag "application"
7
+ = csrf_meta_tags
8
+ %body
9
+ .navbar.navbar-fixed-top
10
+ .navbar-inner
11
+ .container
12
+ %a.brand(href="/") Test App
13
+ -if current_shop
14
+ %ul.nav.pull-right
15
+ %li.dropdown
16
+ =link_to '#', class: 'dropdown-toggle', data: { toggle: :dropdown } do
17
+ =current_shop['fwm_domain']
18
+ %b.caret
19
+ %ul.dropdown-menu
20
+ %li
21
+ =link_to shop_url, target: :_blank do
22
+ %i.icon-home
23
+ Перейти в магазин
24
+ %li
25
+ =link_to "#{shop_url}/admin", target: :_blank do
26
+ %i.icon-cog
27
+ Перейти в админ раздел
28
+ %li.divider
29
+ %li
30
+ =link_to sign_out_path do
31
+ %i.icon-off
32
+ Выход
33
+
34
+ #main.container
35
+ = yield
36
+ #footer.footer
37
+ %p(style="padding-right:20px;")
38
+ ==Copyright©#{Date.today.year}
39
+ =link_to SecretSetting.app_name, '/'
@@ -0,0 +1,33 @@
1
+ defaults: &defaults
2
+ app_name: Pontiac Test App
3
+ author:
4
+ email: payponty.info@gmail.com
5
+ oauth:
6
+ client_id: <%= client_id %>
7
+ secret: <%= client_secret %>
8
+ scope: 'read_products read_orders'
9
+ callback_path: '/callback'
10
+ domain:
11
+ host: 'testapp.payponty.com'
12
+ record: ''
13
+ fwm_domain:
14
+ protocol: 'http://'
15
+
16
+ development:
17
+ <<: *defaults
18
+
19
+ test:
20
+ <<: *defaults
21
+
22
+ production:
23
+ <<: *defaults
24
+ oauth:
25
+ client_id: <%= client_id %>
26
+ secret: <%= client_secret %>
27
+ scope: 'read_products read_orders'
28
+ callback_path: '/callback'
29
+ domain:
30
+ host: 'testapp.payponty.com'
31
+ record: ''
32
+ fwm_domain:
33
+ protocol: 'http://'
@@ -0,0 +1,11 @@
1
+ class CreateShops < ActiveRecord::Migration
2
+ def change
3
+ create_table :shops do |t|
4
+ t.integer :shop_id, unique: true, null: false
5
+ t.string :name, limit: 32 , null: false
6
+ t.string :fwm_domain, limit: 64 , null: false
7
+ t.string :access_token, limit: 64
8
+ end
9
+ add_index :shops, :shop_id, :unique => true
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ # encoding: UTF-8
2
+
3
+ FactoryGirl.define do
4
+ factory :shop do
5
+ shop_id 1
6
+ name 'Test Store'
7
+ fwm_domain 'test-store.myponty.com'
8
+ access_token SecureRandom.hex
9
+ end
10
+ end
@@ -0,0 +1,49 @@
1
+ module Pontiac
2
+ class Engine < Rails::Engine
3
+ isolate_namespace Pontiac
4
+ engine_name 'pontiac'
5
+
6
+ def models_dir
7
+ root.join 'app', 'models'
8
+ end
9
+
10
+ config.generators do |g|
11
+ g.template_engine :haml
12
+ g.test_framework :rspec, :views => false
13
+ g.integration_tool :rspec
14
+ end
15
+
16
+ initializer "pontiac.routes" do
17
+ Pontiac::Rails::Routes.install
18
+ end
19
+
20
+ initializer "pontiac.acronym" do
21
+ ActiveSupport::Inflector.inflections do |inflect|
22
+ inflect.acronym 'Fwm'
23
+ end
24
+ end
25
+
26
+ initializer "pontiac.helpers" do
27
+ ActiveSupport.on_load(:action_controller) do
28
+ include Pontiac::Helpers
29
+ end
30
+ end
31
+
32
+ initializer "pontiac.omniauth" do |app|
33
+ app.middleware.use OmniAuth::Builder do
34
+ provider :payponty,
35
+ (SecretSetting.oauth.client_id rescue nil),
36
+ (SecretSetting.oauth.secret rescue nil),
37
+ :scope => (SecretSetting.oauth.scope rescue nil),
38
+ :callback_path => (SecretSetting.oauth.callback_path rescue nil),
39
+ :setup => lambda {|env|
40
+ params = Rack::Utils.parse_query(env['QUERY_STRING'])
41
+ site_url = "http://#{params['shop']}"
42
+ env['omniauth.strategy'].options[:client_options][:site] = site_url
43
+ }
44
+ end
45
+
46
+ OmniAuth.config.on_failure{|env| raise env['omniauth.error']}
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,8 @@
1
+ module Pontiac
2
+ module Helpers
3
+ def self.included(base)
4
+ base.send :helper, Pontiac::ApplicationHelper
5
+ base.send :include, Pontiac::ApplicationHelper
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,19 @@
1
+ module Pontiac
2
+ module Rails
3
+ class Routes
4
+ module Helper
5
+ def use_pontiac(options = {}, &block)
6
+ options.reverse_merge! callbacks: 'pontiac/omniauth_callbacks'
7
+ self.match 'login' => "pontiac/sessions#new"
8
+ self.get 'callback_login' => "pontiac/sessions#payponty_login"
9
+ self.get 'callback' => "#{options[:callbacks]}#payponty"
10
+ self.get 'sign_out' => "pontiac/sessions#destroy"
11
+ end
12
+ end
13
+
14
+ def self.install
15
+ ActionDispatch::Routing::Mapper.send :include, Pontiac::Rails::Routes::Helper
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,3 @@
1
+ module Pontiac
2
+ VERSION = "0.1.4"
3
+ end
data/lib/pontiac.rb ADDED
@@ -0,0 +1,15 @@
1
+ require "pontiac/engine"
2
+ require 'haml'
3
+ require 'bootstrap-sass'
4
+ require 'omniauth'
5
+ require 'settingslogic'
6
+ require 'omniauth-payponty'
7
+ require 'kitpay'
8
+
9
+ module Pontiac
10
+ autoload :Helpers, "pontiac/helpers"
11
+
12
+ module Rails
13
+ autoload :Routes, "pontiac/rails/routes"
14
+ end
15
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :pontiac do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,200 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pontiac
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ platform: ruby
6
+ authors:
7
+ - PayPonty
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.13
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.13
27
+ - !ruby/object:Gem::Dependency
28
+ name: omniauth-payponty
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.1.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.1.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: kitpay
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: haml
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 3.1.6
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 3.1.6
69
+ - !ruby/object:Gem::Dependency
70
+ name: bootstrap-sass
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.4.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 2.0.4.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: settingslogic
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 2.0.8
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 2.0.8
97
+ - !ruby/object:Gem::Dependency
98
+ name: sqlite3
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 2.10.1
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: 2.10.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: factory_girl_rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 3.5.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: 3.5.0
139
+ description: Gem engine for applications in the system PayPonty
140
+ email:
141
+ - payponty.info@gmail.com
142
+ executables: []
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - MIT-LICENSE
147
+ - README.md
148
+ - Rakefile
149
+ - app/controllers/pontiac/application_controller.rb
150
+ - app/controllers/pontiac/omniauth_callbacks_controller.rb
151
+ - app/controllers/pontiac/sessions_controller.rb
152
+ - app/helpers/pontiac/application_helper.rb
153
+ - app/models/secret_setting.rb
154
+ - app/models/shop.rb
155
+ - app/views/pontiac/sessions/new.html.haml
156
+ - lib/generators/pontiac/USAGE
157
+ - lib/generators/pontiac/pontiac_generator.rb
158
+ - lib/generators/pontiac/templates/README
159
+ - lib/generators/pontiac/templates/app/assets/javascripts/application.js.coffee
160
+ - lib/generators/pontiac/templates/app/assets/stylesheets/application.css.scss.erb
161
+ - lib/generators/pontiac/templates/app/controllers/application_controller.rb
162
+ - lib/generators/pontiac/templates/app/controllers/home_controller.rb
163
+ - lib/generators/pontiac/templates/app/helpers/home_helper.rb
164
+ - lib/generators/pontiac/templates/app/models/shop.rb
165
+ - lib/generators/pontiac/templates/app/views/home/index.html.haml
166
+ - lib/generators/pontiac/templates/app/views/layouts/application.html.haml
167
+ - lib/generators/pontiac/templates/config/app_secret_config.yml.erb
168
+ - lib/generators/pontiac/templates/db/migrate/create_shops.rb
169
+ - lib/generators/pontiac/templates/spec/factories/shops.rb
170
+ - lib/pontiac.rb
171
+ - lib/pontiac/engine.rb
172
+ - lib/pontiac/helpers.rb
173
+ - lib/pontiac/rails/routes.rb
174
+ - lib/pontiac/version.rb
175
+ - lib/tasks/pontiac_tasks.rake
176
+ homepage: http://payponty.github.io/pontiac/
177
+ licenses: []
178
+ metadata: {}
179
+ post_install_message:
180
+ rdoc_options: []
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ requirements: []
194
+ rubyforge_project:
195
+ rubygems_version: 2.2.2
196
+ signing_key:
197
+ specification_version: 4
198
+ summary: Gem engine for applications in the system PayPonty
199
+ test_files: []
200
+ has_rdoc: