how_are_we_doing 0.0.1
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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +2 -0
- data/app/controllers/prints_controller.rb +16 -0
- data/app/controllers/shares_controller.rb +16 -0
- data/app/controllers/views_controller.rb +16 -0
- data/app/models/print.rb +3 -0
- data/app/models/share.rb +3 -0
- data/app/models/view.rb +3 -0
- data/how_are_we_doing.gemspec +21 -0
- data/lib/acts_as_printable.rb +23 -0
- data/lib/acts_as_shareable.rb +23 -0
- data/lib/acts_as_viewable.rb +23 -0
- data/lib/generators/install_generator.rb +33 -0
- data/lib/generators/templates/db/migrate/create_prints.rb +16 -0
- data/lib/generators/templates/db/migrate/create_shares.rb +20 -0
- data/lib/generators/templates/db/migrate/create_views.rb +16 -0
- data/lib/how_are_we_doing/version.rb +3 -0
- data/lib/how_are_we_doing.rb +12 -0
- metadata +83 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
class PrintsController < ApplicationController
|
2
|
+
respond_to :html, :json, :xml, :js
|
3
|
+
|
4
|
+
def create
|
5
|
+
@print = parent.prints.create
|
6
|
+
|
7
|
+
respond_with @print
|
8
|
+
end
|
9
|
+
|
10
|
+
protected
|
11
|
+
def parent
|
12
|
+
@parent ||= params[:printable_type].classify.constantize.find(params[:printable_id])
|
13
|
+
instance_variable_set("@#{params[:printable_type].underscore}",@parent)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class SharesController < ApplicationController
|
2
|
+
respond_to :html, :json, :xml, :js
|
3
|
+
|
4
|
+
def create
|
5
|
+
@share = parent.shares.create
|
6
|
+
|
7
|
+
respond_with @share
|
8
|
+
end
|
9
|
+
|
10
|
+
protected
|
11
|
+
def parent
|
12
|
+
@parent ||= params[:shareable_type].classify.constantize.find(params[:shareable_id])
|
13
|
+
instance_variable_set("@#{params[:shareable_type].underscore}",@parent)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class ViewsController < ApplicationController
|
2
|
+
respond_to :html, :json, :xml, :js
|
3
|
+
|
4
|
+
def create
|
5
|
+
@view = parent.views.create
|
6
|
+
|
7
|
+
respond_with @view
|
8
|
+
end
|
9
|
+
|
10
|
+
protected
|
11
|
+
def parent
|
12
|
+
@parent ||= params[:viewable_type].classify.constantize.find(params[:viewable_id])
|
13
|
+
instance_variable_set("@#{params[:viewable_type].underscore}",@parent)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
data/app/models/print.rb
ADDED
data/app/models/share.rb
ADDED
data/app/models/view.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "how_are_we_doing/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "how_are_we_doing"
|
7
|
+
s.version = HowAreWeDoing::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Gunner Technology, Cody Swann"]
|
10
|
+
s.email = ["developers@gunnertech.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{A gem to help answer the question "How are we doing?"}
|
13
|
+
s.description = %q{This gem will help you track shares (Facebook, Twitter, Email), Prints and Views}
|
14
|
+
|
15
|
+
s.rubyforge_project = "how_are_we_doing"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module HowAreWeDoing
|
2
|
+
module ActsAsPrintable #:nodoc:
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def acts_as_printable
|
10
|
+
has_many :prints, :as => :printable
|
11
|
+
|
12
|
+
include HowAreWeDoing::ActsAsPrintable::InstanceMethods
|
13
|
+
extend HowAreWeDoing::ActsAsPrintable::SingletonMethods
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
module SingletonMethods
|
18
|
+
end
|
19
|
+
|
20
|
+
module InstanceMethods
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module HowAreWeDoing
|
2
|
+
module ActsAsShareable #:nodoc:
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def acts_as_shareable
|
10
|
+
has_many :shares, :as => :shareable
|
11
|
+
|
12
|
+
include HowAreWeDoing::ActsAsShareable::InstanceMethods
|
13
|
+
extend HowAreWeDoing::ActsAsShareable::SingletonMethods
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
module SingletonMethods
|
18
|
+
end
|
19
|
+
|
20
|
+
module InstanceMethods
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module HowAreWeDoing
|
2
|
+
module ActsAsViewable #:nodoc:
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def acts_as_viewable
|
10
|
+
has_many :views, :as => :viewable
|
11
|
+
|
12
|
+
include HowAreWeDoing::ActsAsViewable::InstanceMethods
|
13
|
+
extend HowAreWeDoing::ActsAsViewable::SingletonMethods
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
module SingletonMethods
|
18
|
+
end
|
19
|
+
|
20
|
+
module InstanceMethods
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module HowAreWeDoing
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
include ::Rails::Generators::Migration
|
5
|
+
|
6
|
+
source_root File.expand_path('../templates', __FILE__)
|
7
|
+
|
8
|
+
def self.next_migration_number(dirname)
|
9
|
+
if ActiveRecord::Base.timestamped_migrations
|
10
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
11
|
+
else
|
12
|
+
"%.3d" % (current_migration_number(dirname) + 1)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def generate_controllers
|
17
|
+
#template "app/controllers/authentications_controller.rb", "app/controllers/authentications_controller.rb"
|
18
|
+
end
|
19
|
+
|
20
|
+
def generate_migrations
|
21
|
+
migration_template "db/migrate/create_views.rb", "db/migrate/create_views.rb"
|
22
|
+
migration_template "db/migrate/create_shares.rb", "db/migrate/create_shares.rb"
|
23
|
+
migration_template "db/migrate/create_prints.rb", "db/migrate/create_prints.rb"
|
24
|
+
end
|
25
|
+
|
26
|
+
def generate_routes
|
27
|
+
route("match ':viewable_type/:viewable_id/views' => 'views#create', :via => :post")
|
28
|
+
route("match ':printable_type/:printable_id/prints' => 'prints#create', :via => :post")
|
29
|
+
route("match ':shareable_type/:shareable_id/shares' => 'shares#create', :via => :post")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class CreatePrints < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :prints do |t|
|
4
|
+
t.references :printable, :polymorphic => true
|
5
|
+
t.references :user
|
6
|
+
t.timestamps
|
7
|
+
end
|
8
|
+
|
9
|
+
add_index :prints, [:printable_id, :printable_type]
|
10
|
+
add_index :prints, :user_id
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.down
|
14
|
+
drop_table :prints
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class CreateShares < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :shares do |t|
|
4
|
+
t.references :shareable, :polymorphic => true
|
5
|
+
t.references :user
|
6
|
+
t.string :service_ident, :limit => 48
|
7
|
+
t.string :url_hash
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
|
11
|
+
add_index :shares, [:shareable_id, :shareable_type]
|
12
|
+
add_index :shares, :user_id
|
13
|
+
add_index :shares, :server_ident
|
14
|
+
add_index :shares, :url_hash
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.down
|
18
|
+
drop_table :shares
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class CreateViews < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :views do |t|
|
4
|
+
t.references :viewable, :polymorphic => true
|
5
|
+
t.references :user
|
6
|
+
t.timestamps
|
7
|
+
end
|
8
|
+
|
9
|
+
add_index :views, [:viewable_id, :viewable_type]
|
10
|
+
add_index :views, :user_id
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.down
|
14
|
+
drop_table :views
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'acts_as_printable'
|
2
|
+
require 'acts_as_viewable'
|
3
|
+
require 'acts_as_shareable'
|
4
|
+
|
5
|
+
ActiveRecord::Base.send(:include, HowAreWeDoing::ActsAsPrintable)
|
6
|
+
ActiveRecord::Base.send(:include, HowAreWeDoing::ActsAsViewable)
|
7
|
+
ActiveRecord::Base.send(:include, HowAreWeDoing::ActsAsShareable)
|
8
|
+
|
9
|
+
module HowAreWeDoing
|
10
|
+
class Engine < ::Rails::Engine
|
11
|
+
end
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: how_are_we_doing
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 0.0.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Gunner Technology, Cody Swann
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-02-28 00:00:00 -08:00
|
18
|
+
default_executable:
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: This gem will help you track shares (Facebook, Twitter, Email), Prints and Views
|
22
|
+
email:
|
23
|
+
- developers@gunnertech.com
|
24
|
+
executables: []
|
25
|
+
|
26
|
+
extensions: []
|
27
|
+
|
28
|
+
extra_rdoc_files: []
|
29
|
+
|
30
|
+
files:
|
31
|
+
- .gitignore
|
32
|
+
- Gemfile
|
33
|
+
- Rakefile
|
34
|
+
- app/controllers/prints_controller.rb
|
35
|
+
- app/controllers/shares_controller.rb
|
36
|
+
- app/controllers/views_controller.rb
|
37
|
+
- app/models/print.rb
|
38
|
+
- app/models/share.rb
|
39
|
+
- app/models/view.rb
|
40
|
+
- how_are_we_doing.gemspec
|
41
|
+
- lib/acts_as_printable.rb
|
42
|
+
- lib/acts_as_shareable.rb
|
43
|
+
- lib/acts_as_viewable.rb
|
44
|
+
- lib/generators/install_generator.rb
|
45
|
+
- lib/generators/templates/db/migrate/create_prints.rb
|
46
|
+
- lib/generators/templates/db/migrate/create_shares.rb
|
47
|
+
- lib/generators/templates/db/migrate/create_views.rb
|
48
|
+
- lib/how_are_we_doing.rb
|
49
|
+
- lib/how_are_we_doing/version.rb
|
50
|
+
has_rdoc: true
|
51
|
+
homepage: ""
|
52
|
+
licenses: []
|
53
|
+
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options: []
|
56
|
+
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
segments:
|
65
|
+
- 0
|
66
|
+
version: "0"
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
75
|
+
requirements: []
|
76
|
+
|
77
|
+
rubyforge_project: how_are_we_doing
|
78
|
+
rubygems_version: 1.3.7
|
79
|
+
signing_key:
|
80
|
+
specification_version: 3
|
81
|
+
summary: A gem to help answer the question "How are we doing?"
|
82
|
+
test_files: []
|
83
|
+
|