custom_streams 0.0.1 → 0.0.2

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/README.md CHANGED
@@ -13,12 +13,17 @@ And then execute:
13
13
 
14
14
  $ bundle
15
15
 
16
- Or install it yourself as:
16
+ Run the installer:
17
17
 
18
- $ gem install custom_streams
18
+ rails g custom_streams:install
19
+
20
+ And then run the generated migration:
21
+
22
+ rake db:migrate
19
23
 
20
24
  ## Usage
21
25
 
26
+
22
27
  ## Contributing
23
28
 
24
29
  1. Fork it
data/Rakefile CHANGED
@@ -1 +1,9 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
+
3
+ require 'rspec/core/rake_task'
4
+
5
+ desc 'Default: run specs.'
6
+ task :default => :spec
7
+
8
+ desc "Run specs"
9
+ RSpec::Core::RakeTask.new
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_runtime_dependency "activerecord"
22
+ spec.add_runtime_dependency "rails"
22
23
 
23
24
  spec.add_development_dependency "bundler", "~> 1.3"
24
25
  spec.add_development_dependency "rake"
@@ -1,3 +1,3 @@
1
1
  class Activity < ActiveRecord::Base
2
-
2
+ belongs_to :streamable, :polymorphic => true
3
3
  end
@@ -0,0 +1,12 @@
1
+ require "rails/generators/base"
2
+
3
+ module CustomStreams
4
+ class InstallGenerator < ::Rails::Generators::Base
5
+ source_root File.dirname(__FILE__) + "/../../templates"
6
+
7
+ def copy_migrations
8
+ stamp = proc {|time| time.utc.strftime("%Y%m%d%H%M%S")}
9
+ copy_file "activities.rb", "db/migrate/#{stamp[Time.now]}_create_activities.rb"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ module CustomStreams
2
+ class Railtie < Rails::Railtie
3
+ generators do
4
+ require "custom_streams/generator"
5
+ end
6
+ end
7
+ end
@@ -9,21 +9,21 @@ module CustomStreams
9
9
 
10
10
  def streamer args={}
11
11
 
12
+ has_many :activities, as: :streamable
13
+
12
14
  define_method :streamer_options do
13
15
  args
14
16
  end
15
17
 
16
18
  define_method :create_activity do |activity|
17
19
  namespace = streamer_options.fetch(:namespace, nil)
18
- p namespace
19
20
  name = namespace ? "#{namespace}.#{activity}" : activity
20
- p name
21
- Activity.create owner_id: self.id, owner_type: self.class.to_s, name: name
21
+ Activity.create streamable_id: self.id, streamable_type: self.class.to_s, name: name
22
22
  end
23
23
 
24
24
  define_method :stream do |args={}|
25
25
  order = args.fetch(:order, 'created_at DESC')
26
- Activity.where(owner_id: self.id).order(order)
26
+ self.activities.order(order)
27
27
  end
28
28
 
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module CustomStreams
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -1,6 +1,9 @@
1
- require "custom_streams/version"
2
- require "custom_streams/streamer"
3
- require "custom_streams/activity"
1
+ require 'rails/railtie'
2
+ require 'active_record'
3
+ require 'custom_streams/version'
4
+ require 'custom_streams/streamer'
5
+ require 'custom_streams/activity'
6
+ require 'custom_streams/railtie'
4
7
 
5
8
  module CustomStreams
6
9
  end
@@ -11,8 +11,8 @@ describe Document do
11
11
  document.create_activity("new_activity")
12
12
  end
13
13
  specify { Activity.count.should eq 1 }
14
- specify { Activity.first.owner_id.should eq document.id }
15
- specify { Activity.first.owner_type.should eq 'Document' }
14
+ specify { Activity.first.streamable_id.should eq document.id }
15
+ specify { Activity.first.streamable_type.should eq 'Document' }
16
16
  specify { Activity.first.name.should eq 'new_activity' }
17
17
  end
18
18
 
@@ -1,14 +1,14 @@
1
1
  class CreateActivities < ActiveRecord::Migration
2
2
  def self.up
3
3
  create_table :activities do |t|
4
- t.integer :owner_id, :null => false
5
- t.string :owner_type, :name, :null => false
4
+ t.integer :streamable_id, :null => false
5
+ t.string :streamable_type, :name, :null => false
6
6
  t.string :name, :null => false
7
7
  t.timestamps
8
8
  end
9
9
 
10
- add_index :activities, :owner_type
11
- add_index :activities, :owner_id
10
+ add_index :activities, :streamable_type
11
+ add_index :activities, :streamable_id
12
12
  end
13
13
 
14
14
  def self.down
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: custom_streams
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
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: '0'
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: bundler
32
48
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +123,8 @@ files:
107
123
  - custom_streams.gemspec
108
124
  - lib/custom_streams.rb
109
125
  - lib/custom_streams/activity.rb
126
+ - lib/custom_streams/generator.rb
127
+ - lib/custom_streams/railtie.rb
110
128
  - lib/custom_streams/streamer.rb
111
129
  - lib/custom_streams/version.rb
112
130
  - spec/custom_streams_spec.rb
@@ -128,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
146
  version: '0'
129
147
  segments:
130
148
  - 0
131
- hash: 4119074303309682510
149
+ hash: 2472144999673379205
132
150
  required_rubygems_version: !ruby/object:Gem::Requirement
133
151
  none: false
134
152
  requirements:
@@ -137,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
155
  version: '0'
138
156
  segments:
139
157
  - 0
140
- hash: 4119074303309682510
158
+ hash: 2472144999673379205
141
159
  requirements: []
142
160
  rubyforge_project:
143
161
  rubygems_version: 1.8.25