sharkapps 0.1.2 → 0.1.5

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/Gemfile CHANGED
@@ -6,6 +6,7 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
+ gem "rails", ">=3.0.9"
9
10
  gem "shoulda", ">= 0"
10
11
  gem "bundler", "~> 1.0.0"
11
12
  gem "jeweler", "~> 1.5.2"
data/Gemfile.lock CHANGED
@@ -1,14 +1,78 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ abstract (1.0.0)
5
+ actionmailer (3.0.9)
6
+ actionpack (= 3.0.9)
7
+ mail (~> 2.2.19)
8
+ actionpack (3.0.9)
9
+ activemodel (= 3.0.9)
10
+ activesupport (= 3.0.9)
11
+ builder (~> 2.1.2)
12
+ erubis (~> 2.6.6)
13
+ i18n (~> 0.5.0)
14
+ rack (~> 1.2.1)
15
+ rack-mount (~> 0.6.14)
16
+ rack-test (~> 0.5.7)
17
+ tzinfo (~> 0.3.23)
18
+ activemodel (3.0.9)
19
+ activesupport (= 3.0.9)
20
+ builder (~> 2.1.2)
21
+ i18n (~> 0.5.0)
22
+ activerecord (3.0.9)
23
+ activemodel (= 3.0.9)
24
+ activesupport (= 3.0.9)
25
+ arel (~> 2.0.10)
26
+ tzinfo (~> 0.3.23)
27
+ activeresource (3.0.9)
28
+ activemodel (= 3.0.9)
29
+ activesupport (= 3.0.9)
30
+ activesupport (3.0.9)
31
+ arel (2.0.10)
32
+ builder (2.1.2)
33
+ erubis (2.6.6)
34
+ abstract (>= 1.0.0)
4
35
  git (1.2.5)
36
+ i18n (0.5.0)
5
37
  jeweler (1.5.2)
6
38
  bundler (~> 1.0.0)
7
39
  git (>= 1.2.5)
8
40
  rake
41
+ mail (2.2.19)
42
+ activesupport (>= 2.3.6)
43
+ i18n (>= 0.4.0)
44
+ mime-types (~> 1.16)
45
+ treetop (~> 1.4.8)
46
+ mime-types (1.16)
47
+ polyglot (0.3.2)
48
+ rack (1.2.3)
49
+ rack-mount (0.6.14)
50
+ rack (>= 1.0.0)
51
+ rack-test (0.5.7)
52
+ rack (>= 1.0)
53
+ rails (3.0.9)
54
+ actionmailer (= 3.0.9)
55
+ actionpack (= 3.0.9)
56
+ activerecord (= 3.0.9)
57
+ activeresource (= 3.0.9)
58
+ activesupport (= 3.0.9)
59
+ bundler (~> 1.0)
60
+ railties (= 3.0.9)
61
+ railties (3.0.9)
62
+ actionpack (= 3.0.9)
63
+ activesupport (= 3.0.9)
64
+ rake (>= 0.8.7)
65
+ rdoc (~> 3.4)
66
+ thor (~> 0.14.4)
9
67
  rake (0.8.7)
10
68
  rcov (0.9.9)
69
+ rdoc (3.9.1)
11
70
  shoulda (2.11.3)
71
+ thor (0.14.6)
72
+ treetop (1.4.10)
73
+ polyglot
74
+ polyglot (>= 0.3.1)
75
+ tzinfo (0.3.29)
12
76
 
13
77
  PLATFORMS
14
78
  ruby
@@ -16,5 +80,6 @@ PLATFORMS
16
80
  DEPENDENCIES
17
81
  bundler (~> 1.0.0)
18
82
  jeweler (~> 1.5.2)
83
+ rails (>= 3.0.9)
19
84
  rcov
20
85
  shoulda
data/Rakefile CHANGED
@@ -7,6 +7,7 @@ rescue Bundler::BundlerError => e
7
7
  $stderr.puts "Run `bundle install` to install missing gems"
8
8
  exit e.status_code
9
9
  end
10
+
10
11
  require 'rake'
11
12
 
12
13
  require 'jeweler'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.5
@@ -0,0 +1,28 @@
1
+ class AppformaController < ApplicationController
2
+ skip_before_filter :ensure_canvas_connected_to_facebook
3
+ before_filter :set_tab_current_account, :except => [:intro, :not_authorized]
4
+ before_filter :set_edit_account, :only => [:not_authorized]
5
+ before_filter :set_locale, :except => [:intro, :not_subscribed]
6
+ skip_before_filter :check_account_authorized, :only => [:intro]
7
+
8
+ def not_subscribed
9
+ @external = true
10
+ end
11
+
12
+ def intro
13
+ render :layout => false
14
+ end
15
+
16
+ def locale_select
17
+
18
+ end
19
+
20
+ def not_authorized
21
+
22
+ end
23
+
24
+ private
25
+ def set_edit_account
26
+ @account = Account.find_by_acc_hash(params[:id])
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ <div id="footer">
2
+ <h6 id="footer_disclaimer"><%= t('general.diclaimer')%></h6>
3
+ <% case @account.footer_state.to_i %>
4
+ <% when Account::LOGO_REGULAR %>
5
+ <div id="appforma_solo" class="appforma_logo">
6
+ <div id="logo_solo_image">
7
+ <%= link_to image_tag("https://s3.amazonaws.com/appforma_static/logos/logo_solo.png", :border => 0), "http://www.appforma.com", {:target => "_blank"}%>
8
+ </div>
9
+ <div id="logo_dot_link">
10
+ <%= link_to t('general.logo_link'), "http://www.appforma.com/pricing?ref=#{@account.fbid}", {:target => "_blank"}%>
11
+ </div>
12
+ </div>
13
+ <% when Account::LOGO_DUAL %>
14
+ <div id="appforma_dual" class="appforma_logo"%>
15
+ <%= link_to image_tag("https://s3.amazonaws.com/appforma_static/logos/logo_poweredby.png", :border => 0), "http://www.appforma.com", {:target => "_blank"}%>
16
+ </div>
17
+ <div id="logo_brand">
18
+ <% if @account.image_logo.exists? %>
19
+ <%= link_to image_tag(@account.image_logo.url(:dual)), @account.logo_link, {:target => "_blank"}%>
20
+ <% end %>
21
+ </div>
22
+ <% when Account::LOGO_WHITE %>
23
+ <div id="logo_brand">
24
+ <% if @account.image_logo.exists? %>
25
+ <%= link_to image_tag(@account.image_logo.url(:white)), @account.logo_link, {:target => "_blank"}%>
26
+ <% end %>
27
+ </div>
28
+ <% end %>
29
+
30
+ </div>
@@ -0,0 +1,34 @@
1
+ <div id="header" >
2
+ <%= render :partial => "appforma/notifications"%>
3
+ <div style="background-image:url(/images/appicon.png); float:left; padding:10px 0 0 5px; position:relative; width:75px; height:75px; background-repeat:no-repeat;">
4
+ </div>
5
+
6
+ <div style="width:300px; font-family:Tahoma, Geneva, sans-serif; font-size:24px; position:relative; float:left; vertical-align:middle; padding-top:22px;direction:ltr;">
7
+ <span style="color:#09F">
8
+ Edit mode:
9
+ </span>
10
+ <span style="color:#000">
11
+ <%= t('general.app_name') %>
12
+ </span>
13
+ </div>
14
+ <div style="vertical-align:middle; padding-top:22px;direction:ltr;float:right;">
15
+ <% if params[:controller] == "dashboard"%>
16
+ <button id="edit"><%= t('dashboard.manage') %></button>
17
+ <% else %>
18
+ <button id="page_back"><%= t('general.back_to_page') %></button>
19
+ <% end %>
20
+ </div>
21
+ </div>
22
+ <div id="clearer"></div>
23
+ <script>
24
+ $(document).ready(function() {
25
+ $("button" ).button();
26
+ $('#page_back').click(function() {
27
+ top.location = "<%=@account.link_page(current_facebook_client) %>";
28
+ });
29
+ $('#edit').click(function() {
30
+ top.location = "<%="http://apps.facebook.com/#{SharkApps.canvas_name}/accounts/#{@account.to_param}/edit"%>";
31
+ });
32
+ });
33
+
34
+ </script>
@@ -0,0 +1,8 @@
1
+ <div id="flash" style="margin-top:10px">
2
+ <% if @account.approval_status == "trial" -%>
3
+ <div id="flash_notice">
4
+ <strong><i>Note: This message is only visible to page administrators.</i></strong><br/><br/>
5
+ You have <%= pluralize(@account.trial_remaining, 'day')%> remaining in trial mode. <%= link_to "Click here to upgrade", "http://www.appforma.com/myaccount", {:target => "blank"} %>
6
+ </div>
7
+ <% end -%>
8
+ </div>
@@ -0,0 +1,7 @@
1
+ <html>
2
+ <body>
3
+ <div id="shark_iframe_container">
4
+ <iframe src="<%="#{SharkApps.server_url}product_overview/#{SharkApps.app_id}/il"%>" style="width:760px;height:1000px;border:none">
5
+ </div>
6
+ </body>
7
+ </html>
@@ -0,0 +1,8 @@
1
+ <div id="flash" style="margin-top:10px">
2
+ <div id="flash_notice">
3
+
4
+ <%= t('appforma.errors.not_auth1')%><br/><br/>
5
+ <%= t('appforma.errors.not_auth2')%><br/><br/>
6
+ <%= t('appforma.errors.not_auth3')%> <%= link_to t('appforma.support_form'), "http://appformaapps.zendesk.com/", :target => "_blank"%><br/>
7
+ </div>
8
+ </div>
@@ -0,0 +1,17 @@
1
+ <% if is_admin %>
2
+ <div id="flash" style="margin-top:10px">
3
+ <div id="flash_notice">
4
+ <strong><i>Note: This message is only visible to page administrators.</i></strong><br/><br/>
5
+ <% if @account.approval_status == Subscription::UNAUTHORIZED%>
6
+ You have installed this application without registering it with <%= link_to "Appforma", "http://www.appforma.com/", :target => "_blank"%>.
7
+ Please go to <%= link_to "Appforma.com", "http://www.appforma.com/", :target => "_blank"%> to register and activate the applications.<br/><br/>
8
+ If you need more information please <%= link_to "contact us", "http://appformaapps.zendesk.com/", :target => "_blank"%>.
9
+ <% else %>
10
+ You trial period has expired.<br/><br/>
11
+ Please sign in to <%= link_to "your account", "http://www.appforma.com/myaccount", :target => "_blank"%> and upgrade your subscription. If you do not upgrade your account in 3 days it will be deactivated.<br/><br/>
12
+ If you need more information please <%= link_to "contact us", "http://appformaapps.zendesk.com/", :target => "_blank"%>.
13
+ <% end %>
14
+
15
+ </div>
16
+ </div>
17
+ <% end %>
@@ -0,0 +1,7 @@
1
+ en:
2
+ appforma:
3
+ errors:
4
+ not_auth1: You are not authorized to access this page.
5
+ not_auth2: Contact the page admin and account owner for the proper authorization.
6
+ not_auth3: For more information visit our
7
+ support_forum: Support Forum
@@ -0,0 +1,7 @@
1
+ il:
2
+ appforma:
3
+ errors:
4
+ not_auth1: You are not authorized to access this page.
5
+ not_auth2: Contact the page admin and account owner for the proper authorization.
6
+ not_auth3: For more information visit our
7
+ support_forum: Support Forum
data/config/routes.rb ADDED
@@ -0,0 +1,6 @@
1
+ Rails.application.routes.draw do
2
+ root :to => 'appforma#intro'
3
+ match 'locale_selector' => 'appforma#locale_selector', :as => :locale_selector
4
+ match 'not_subscribed' => 'appforma#not_subscribed', :as => :not_subscribed
5
+ match 'not_authorized' => 'appforma#not_authorized', :as => :not_authorized
6
+ end
data/init.rb ADDED
File without changes
@@ -0,0 +1,29 @@
1
+ require 'sharkapps'
2
+ class AppformaAccount < ActiveResource::Base
3
+
4
+ self.element_name = "account"
5
+
6
+ def self.initialize_from_yaml
7
+ self.site = SharkApps.server_url
8
+ self.user = SharkApps.username
9
+ self.password = SharkApps.password
10
+ end
11
+
12
+ def self.set_account_info(cur_account)
13
+ acc = self.find("#{cur_account.fbid}-#{cur_account.acc_hash}-#{SharkApps.app_id}")#, :hash => account.acc_hash)
14
+ cur_account.approval_status = acc.state
15
+ unless acc.state == Subscription::UNAUTHORIZED
16
+ cur_account.trial_remaining = acc.trial_remaining
17
+ end
18
+ cur_account.last_approval_check = Time.now
19
+ cur_account.save(false)
20
+ cur_account
21
+ end
22
+
23
+ def self.check_admin_authorized(cur_account, userid=nil)
24
+ return false if userid == nil
25
+ a = self.find("#{cur_account.fbid}-#{cur_account.acc_hash}-#{SharkApps.app_id}")
26
+ c_array = a.collaborators.select {|c| c.fbid == userid}
27
+ return c_array.empty? == false
28
+ end
29
+ end
@@ -0,0 +1,4 @@
1
+ class Appforma < Rails::Engine
2
+ # Add a load path for this specific Engine
3
+ config.autoload_paths << File.expand_path("../lib/some/path", __FILE__)
4
+ end
File without changes
@@ -0,0 +1,22 @@
1
+ class SharkappsController < ApplicationController
2
+ skip_before_filter :ensure_canvas_connected_to_facebook
3
+ before_filter :set_tab_current_account, :except => [:intro]
4
+ #before_filter :set_locale, :except => [:intro, :terms]
5
+
6
+ def not_subscribed
7
+
8
+ end
9
+
10
+ def locale_selector
11
+ if request.post?
12
+ #set the locale according to the form
13
+ redirect_to "/dashboard"
14
+ end
15
+ end
16
+
17
+ def intro
18
+ render :layout => false
19
+ end
20
+
21
+
22
+ end
@@ -0,0 +1,43 @@
1
+ require 'spreadsheet'
2
+ #require "#{RAILS_ROOT}/app/models/account.rb"
3
+
4
+ class Railtie < Rails::Railtie
5
+ initializer 'rails_settings.initialize', :after => :after_initialize do
6
+ Account.class_eval do
7
+
8
+ def self.export_account_data
9
+ Spreadsheet.client_encoding = 'UTF-8'
10
+ book = Spreadsheet::Workbook.new
11
+ sheet1 = book.create_worksheet
12
+ sheet1.name = 'accounts'
13
+ sheet1.row(0).concat [
14
+ 'URL',
15
+ 'FBID',
16
+ 'NAME',
17
+ 'CREATED_DATE',
18
+ 'ADMIN_URL'
19
+ ]
20
+ i = 1
21
+ Account.all.each do |account|
22
+ name = page_link = Mogli::Page.find(account.fbid).name
23
+ admin_url = "http://apps.facebook.com/#{SharkApps.canvas_name}/account/#{account.to_param}/edit"
24
+ sheet1.row(i).concat [account.link_page, account.fbid, name, account.created_at, admin_url]
25
+ i = i + 1
26
+ end
27
+
28
+ book
29
+ end
30
+
31
+
32
+ end
33
+
34
+ AccountsController.class_eval do
35
+ define_method "export_account_data" do
36
+ excel_file = Account.export_account_data
37
+ data = StringIO.new ''
38
+ excel_file.write data
39
+ send_data(data.string.bytes.to_a.pack("C*"), :type=>"application/excel", :disposition=>'attachment', :filename => "#{SharkApps.canvas_name}-export.xls")
40
+ end
41
+ end
42
+ end
43
+ end
@@ -1,11 +1,41 @@
1
1
  require 'sharkapps'
2
2
  class Subscription < ActiveResource::Base
3
3
 
4
+ VALID = "active"
5
+ EXPIRED = "expired"
6
+ TRIAL = "trial"
7
+ UNAUTHORIZED = "unauthorized"
8
+ self.element_name = "account"
4
9
 
5
- def self.check_account_authorized(account_id)
6
- sub = Subscription.find(:first, :params => {:id => account_id, :shark_application_id => SharkApps.app_id})
7
- #sub.nil? ? false : sub.active
8
- return true #hack - remove
10
+ def self.check_account_authorized(account_id, acc_hash)
11
+ path = "#{self.site}accounts/app_authorized/#{account_id}/#{SharkApps.app_id}/#{acc_hash}.xml"
12
+ url = URI.parse(path)
13
+ req = Net::HTTP::Get.new(url.path)
14
+ req.basic_auth self.user, self.password
15
+ res = Net::HTTP.start(url.host, url.port) {|http|
16
+ http.request(req)
17
+ }
18
+
19
+ return res.body
20
+ #doc = REXML::Document.new(res.body)
21
+ end
22
+
23
+
24
+ def self.check_admin_authorized(account_id, user_id)
25
+ path = "#{self.site}accounts/app_authorized/#{account_id}/#{user_id}.xml"
26
+ url = URI.parse(path)
27
+ req = Net::HTTP::Get.new(url.path)
28
+ req.basic_auth self.user, self.password
29
+ res = Net::HTTP.start(url.host, url.port) {|http|
30
+ http.request(req)
31
+ }
32
+
33
+ return res.body
34
+ end
35
+
36
+ def self.get_all_subscriptions(account)
37
+ sub = Subscription.find(account.fbid)
38
+ return sub.subscriptions unless sub.nil?
9
39
  end
10
40
 
11
41
  def self.initialize_from_yaml
@@ -11,4 +11,13 @@ module SharkApps::ViewHelpers
11
11
  end
12
12
  end
13
13
 
14
+
15
+ def show_trial_info
16
+ render :partial => "shared/trial_info"
17
+ end
18
+
19
+ def show_header_messages
20
+
21
+ end
22
+
14
23
  end
data/lib/sharkapps.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  module SharkApps
2
2
  class NotConfigured < Exception; end
3
3
  class << self
4
- attr_accessor :server_url, :username, :password, :app_id, :canvas_name
4
+ attr_accessor :server_url, :username, :password, :app_id, :canvas_name, :debug_mode
5
5
  end
6
6
 
7
7
  require "facebooker2"
8
8
  require "sharkapps/view_helpers"
9
-
9
+ require 'sharkapps/appforma'
10
+ #require "sharkapps/data_helpers"
10
11
  ActionView::Base.send(:include, SharkApps::ViewHelpers)
11
12
 
12
13
  def self.server_url
@@ -29,6 +30,10 @@ module SharkApps
29
30
  @canvas_name || raise_unconfigured_exception
30
31
  end
31
32
 
33
+ def self.debug_mode
34
+ @debug_mode #|| raise_unconfigured_exception
35
+ end
36
+
32
37
  def self.raise_unconfigured_exception
33
38
  raise NotConfigured.new("No configuration provided for Shark Apps. Call SharkApps.load_sharkapps_yaml in an initializer")
34
39
  end
@@ -39,6 +44,7 @@ module SharkApps
39
44
  self.password = hash[:password]
40
45
  self.app_id = hash[:app_id]
41
46
  self.canvas_name = hash[:canvas_name]
47
+ self.debug_mode = hash[:debug_mode]
42
48
  end
43
49
 
44
50
  def self.load_sharkapps_yaml
@@ -46,9 +52,11 @@ module SharkApps
46
52
  raise NotConfigured.new("Unable to load configuration for #{::Rails.env} from sharkapps.yml. Is it set up?") if config.nil?
47
53
  self.configuration = config.with_indifferent_access
48
54
  Subscription.initialize_from_yaml
55
+ AppformaAccount.initialize_from_yaml
49
56
  end
50
57
 
51
58
  require "sharkapps/subscription"
59
+ require "sharkapps/account"
52
60
 
53
61
  def self.included(base)
54
62
  base.extend(ClassMethods)
@@ -61,17 +69,20 @@ module SharkApps
61
69
  end
62
70
 
63
71
  module InstanceMethods
64
- def log_error( exception )
65
- super
66
- #return if exception.message =~ /^No route matches/i # Supressing no route matches error emails
67
- #Notifier.deliver_error_message( exception, clean_backtrace( exception ),
68
- # session.instance_variable_get("@data"),
69
- # params, request.env )
70
- end
71
-
72
+
72
73
  #redirect to the not_subscribed path if not authorized
73
74
  def check_account_authorized
74
- redirect_to not_subscribed_path unless Subscription.check_account_authorized(@account.fbid)
75
+ return true if SharkApps.debug_mode
76
+ res = @account.approval_status
77
+ need_check = @account.last_approval_check.nil? ? true : ((Time.now.to_i - @account.last_approval_check.to_i) > 5.minutes.to_i)
78
+ if need_check
79
+ #get the account
80
+ AppformaAccount.set_account_info(@account)
81
+ res = @account.approval_status
82
+ end
83
+ if res == Subscription::EXPIRED || res == Subscription::UNAUTHORIZED
84
+ redirect_to not_subscribed_path(:id => @account.acc_hash)
85
+ end
75
86
  end
76
87
 
77
88
  def set_tab_current_account
@@ -79,15 +90,30 @@ module SharkApps
79
90
  temp = fb_load_facebook_params
80
91
  page_id = temp["page"]["id"]
81
92
  @account = Account.find_or_create_by_fbid(page_id)
93
+ #set the default locale if supported, and if the account doesn't have a locale set
94
+ if @account.respond_to? :locale and @account.locale.blank?
95
+ @account.locale = "il"
96
+ @account.save
97
+ end
82
98
  @isliked = temp["page"]["liked"]
83
99
  end
84
100
 
101
+ def check_admin
102
+ redirect_to not_authorized_url(:id => @account.acc_hash) unless is_admin
103
+ end
104
+
85
105
  def is_admin
106
+ return true if SharkApps.debug_mode
86
107
  if fb_load_facebook_params['page']
87
108
  fb_load_facebook_params['page']['admin']
88
109
  else
89
110
  #go by the facebook user ID and make an API call. might need to store it in the session
90
- true
111
+ sym = ("auth_admin_" + @account.fbid + "_" + current_facebook_user.id).to_sym
112
+ need_check = session[sym].nil?
113
+ if need_check #need_check
114
+ session[sym] = AppformaAccount.check_admin_authorized(@account, current_facebook_user.id)
115
+ end
116
+ return session[sym]
91
117
  end
92
118
  end
93
119
 
data/sharkapps.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sharkapps}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Eyal Kedem"]
12
- s.date = %q{2011-04-03}
12
+ s.date = %q{2012-02-07}
13
13
  s.description = %q{integration utilities with the shark apps framework}
14
14
  s.email = %q{ekedem@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -24,7 +24,23 @@ Gem::Specification.new do |s|
24
24
  "README.rdoc",
25
25
  "Rakefile",
26
26
  "VERSION",
27
+ "app/controllers/appforma_controller.rb",
28
+ "app/views/appforma/_footer.html.erb",
29
+ "app/views/appforma/_header.html.erb",
30
+ "app/views/appforma/_notifications.html.erb",
31
+ "app/views/appforma/intro.html.erb",
32
+ "app/views/appforma/not_authorized.html.erb",
33
+ "app/views/appforma/not_subscribed.html.erb",
34
+ "config/locales/appforma.en.yml",
35
+ "config/locales/appforma.il.yml",
36
+ "config/routes.rb",
37
+ "init.rb",
27
38
  "lib/sharkapps.rb",
39
+ "lib/sharkapps/account.rb",
40
+ "lib/sharkapps/appforma.rb",
41
+ "lib/sharkapps/appforma_notification.rb",
42
+ "lib/sharkapps/controllers/sharkapps_controller.rb",
43
+ "lib/sharkapps/data_helpers.rb",
28
44
  "lib/sharkapps/subscription.rb",
29
45
  "lib/sharkapps/view_helpers.rb",
30
46
  "sharkapps.gemspec",
@@ -46,17 +62,20 @@ Gem::Specification.new do |s|
46
62
  s.specification_version = 3
47
63
 
48
64
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
65
+ s.add_development_dependency(%q<rails>, [">= 3.0.9"])
49
66
  s.add_development_dependency(%q<shoulda>, [">= 0"])
50
67
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
51
68
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
52
69
  s.add_development_dependency(%q<rcov>, [">= 0"])
53
70
  else
71
+ s.add_dependency(%q<rails>, [">= 3.0.9"])
54
72
  s.add_dependency(%q<shoulda>, [">= 0"])
55
73
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
56
74
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
57
75
  s.add_dependency(%q<rcov>, [">= 0"])
58
76
  end
59
77
  else
78
+ s.add_dependency(%q<rails>, [">= 3.0.9"])
60
79
  s.add_dependency(%q<shoulda>, [">= 0"])
61
80
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
62
81
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sharkapps
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
9
+ - 5
10
+ segments_generated: true
11
+ version: 0.1.5
11
12
  platform: ruby
12
13
  authors:
13
14
  - Eyal Kedem
@@ -15,25 +16,44 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2011-04-03 00:00:00 +03:00
19
+ date: 2012-02-07 00:00:00 +02:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
+ name: rails
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
25
  none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
27
- hash: 3
29
+ hash: 21
28
30
  segments:
31
+ - 3
29
32
  - 0
30
- version: "0"
33
+ - 9
34
+ segments_generated: true
35
+ version: 3.0.9
36
+ requirement: *id001
37
+ prerelease: false
31
38
  type: :development
39
+ - !ruby/object:Gem::Dependency
32
40
  name: shoulda
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ hash: 3
47
+ segments:
48
+ - 0
49
+ segments_generated: true
50
+ version: "0"
51
+ requirement: *id002
33
52
  prerelease: false
34
- version_requirements: *id001
53
+ type: :development
35
54
  - !ruby/object:Gem::Dependency
36
- requirement: &id002 !ruby/object:Gem::Requirement
55
+ name: bundler
56
+ version_requirements: &id003 !ruby/object:Gem::Requirement
37
57
  none: false
38
58
  requirements:
39
59
  - - ~>
@@ -43,13 +63,14 @@ dependencies:
43
63
  - 1
44
64
  - 0
45
65
  - 0
66
+ segments_generated: true
46
67
  version: 1.0.0
47
- type: :development
48
- name: bundler
68
+ requirement: *id003
49
69
  prerelease: false
50
- version_requirements: *id002
70
+ type: :development
51
71
  - !ruby/object:Gem::Dependency
52
- requirement: &id003 !ruby/object:Gem::Requirement
72
+ name: jeweler
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
53
74
  none: false
54
75
  requirements:
55
76
  - - ~>
@@ -59,13 +80,14 @@ dependencies:
59
80
  - 1
60
81
  - 5
61
82
  - 2
83
+ segments_generated: true
62
84
  version: 1.5.2
63
- type: :development
64
- name: jeweler
85
+ requirement: *id004
65
86
  prerelease: false
66
- version_requirements: *id003
87
+ type: :development
67
88
  - !ruby/object:Gem::Dependency
68
- requirement: &id004 !ruby/object:Gem::Requirement
89
+ name: rcov
90
+ version_requirements: &id005 !ruby/object:Gem::Requirement
69
91
  none: false
70
92
  requirements:
71
93
  - - ">="
@@ -73,11 +95,11 @@ dependencies:
73
95
  hash: 3
74
96
  segments:
75
97
  - 0
98
+ segments_generated: true
76
99
  version: "0"
77
- type: :development
78
- name: rcov
100
+ requirement: *id005
79
101
  prerelease: false
80
- version_requirements: *id004
102
+ type: :development
81
103
  description: integration utilities with the shark apps framework
82
104
  email: ekedem@gmail.com
83
105
  executables: []
@@ -95,7 +117,23 @@ files:
95
117
  - README.rdoc
96
118
  - Rakefile
97
119
  - VERSION
120
+ - app/controllers/appforma_controller.rb
121
+ - app/views/appforma/_footer.html.erb
122
+ - app/views/appforma/_header.html.erb
123
+ - app/views/appforma/_notifications.html.erb
124
+ - app/views/appforma/intro.html.erb
125
+ - app/views/appforma/not_authorized.html.erb
126
+ - app/views/appforma/not_subscribed.html.erb
127
+ - config/locales/appforma.en.yml
128
+ - config/locales/appforma.il.yml
129
+ - config/routes.rb
130
+ - init.rb
98
131
  - lib/sharkapps.rb
132
+ - lib/sharkapps/account.rb
133
+ - lib/sharkapps/appforma.rb
134
+ - lib/sharkapps/appforma_notification.rb
135
+ - lib/sharkapps/controllers/sharkapps_controller.rb
136
+ - lib/sharkapps/data_helpers.rb
99
137
  - lib/sharkapps/subscription.rb
100
138
  - lib/sharkapps/view_helpers.rb
101
139
  - sharkapps.gemspec
@@ -118,6 +156,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
118
156
  hash: 3
119
157
  segments:
120
158
  - 0
159
+ segments_generated: true
121
160
  version: "0"
122
161
  required_rubygems_version: !ruby/object:Gem::Requirement
123
162
  none: false
@@ -127,6 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
166
  hash: 3
128
167
  segments:
129
168
  - 0
169
+ segments_generated: true
130
170
  version: "0"
131
171
  requirements: []
132
172