custom_streams 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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