green_midget 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
File without changes
data/lib/green_midget.rb CHANGED
@@ -7,7 +7,7 @@ require 'green_midget/models/examples'
7
7
  require 'green_midget/models/features'
8
8
  require 'green_midget/models/green_midget_records'
9
9
  require 'green_midget/models/words'
10
- require 'extensions/green_midget_check'
10
+ require 'green_midget/extensions/classifier'
11
11
 
12
12
  if (classifier = Gem.searcher.find('green_midget'))
13
13
  path = classifier.full_gem_path
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) 2011, SoundCloud Ltd., Nikola Chochkov
2
- require 'green_midget/constants'
3
- require 'green_midget/logger'
4
- require 'green_midget/url_detection'
2
+ %w(logger constants url_detection).each do |file|
3
+ require File.join(File.dirname(__FILE__), file)
4
+ end
5
5
 
6
6
  module GreenMidget
7
7
  class Base
@@ -0,0 +1,11 @@
1
+ # Copyright (c) 2011, SoundCloud Ltd., Nikola Chochkov
2
+ module GreenMidget
3
+ class Classifier < Base
4
+ attr_accessor :text
5
+
6
+ def initialize(text)
7
+ self.text = text
8
+ end
9
+ end
10
+ end
11
+
@@ -0,0 +1,25 @@
1
+ # Copyright (c) 2011, SoundCloud Ltd., Nikola Chochkov
2
+ #
3
+ # This is a sample of how to define new features to be
4
+ # tracked by GreenMidget. Eg: define user features and check
5
+ # them on the message sender.
6
+ #
7
+
8
+ class Sample < GreenMidget::Base
9
+ attr_accessor :user
10
+
11
+ def initialize(text, user)
12
+ @text = text
13
+ @user = user
14
+ end
15
+
16
+ private
17
+
18
+ def features
19
+ %w(regular_user) + super
20
+ end
21
+
22
+ def regular_user?
23
+ # implement a method checking user type
24
+ end
25
+ end
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2011, SoundCloud Ltd., Nikola Chochkov
2
- require 'green_midget/constants'
2
+ require File.join(File.dirname(__FILE__), 'constants')
3
3
 
4
4
  module GreenMidget
5
5
  include Constants
@@ -27,7 +27,8 @@ module GreenMidget
27
27
  end
28
28
 
29
29
  def record_key(category)
30
- self.key + "::#{category}_count"
30
+ "#{self.key}::#{category}_count"
31
31
  end
32
32
  end
33
33
  end
34
+
@@ -1,3 +1,3 @@
1
1
  module GreenMidget
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -1,32 +1,36 @@
1
1
  # Copyright (c) 2011, SoundCloud Ltd., Nikola Chochkov
2
2
  require 'fileutils'
3
3
  require 'rake'
4
- require File.join(File.dirname(__FILE__), '..', '..', 'db', 'migrate', 'create_green_midget_records')
4
+ require 'green_midget/db/migrate/create_green_midget_records'
5
5
 
6
6
  namespace :green_midget do
7
- desc "prepare this project for a world without spam"
8
- task :setup => :environment do
9
- include GreenMidget
7
+ namespace :setup do
8
+ desc "prepare this project for a world without spam using ActiveRecord"
9
+ task :active_record => :environment do
10
+ include GreenMidget
10
11
 
11
- unless GreenMidgetRecords.table_exists?
12
- CreateGreenMidgetRecords.up
13
- end
14
-
15
- keys = ["url_in_text", "email_in_text"].map do |feature|
16
- [ Features[feature].record_key(ALTERNATIVE), Features[feature].record_key(NULL) ]
17
- end.flatten
12
+ unless GreenMidgetRecords.table_exists?
13
+ CreateGreenMidgetRecords.up
14
+ end
18
15
 
19
- keys += [Examples::GENERAL_FEATURE_NAME, "url_in_text", "email_in_text"].map do |feature|
20
- [ Examples[feature].record_key(ALTERNATIVE), Examples[feature].record_key(NULL) ]
21
- end.flatten
16
+ keys = [ ALTERNATIVE, NULL ].map do |hypothesis|
17
+ [
18
+ "feature::url_in_text::#{hypothesis}_count",
19
+ "feature::email_in_text::#{hypothesis}_count",
20
+ "examples::any::#{hypothesis}_count",
21
+ "examples::url_in_text::#{hypothesis}_count",
22
+ "examples::email_in_text::#{hypothesis}_count",
23
+ ]
24
+ end.flatten
22
25
 
23
- puts '== Creating records ==='
24
- keys.each { |key|
25
- unless GreenMidgetRecords.find_by_key(key)
26
- GreenMidgetRecords.create(key)
27
- puts "-- Created #{key}"
28
- end
29
- }
30
- puts '== Done ==='
26
+ puts '== Creating records ==='
27
+ keys.each { |key|
28
+ unless GreenMidgetRecords.find_by_key(key)
29
+ GreenMidgetRecords.create(key)
30
+ puts "-- Created #{key}"
31
+ end
32
+ }
33
+ puts '== Done ==='
34
+ end
31
35
  end
32
36
  end
data/spec/tester.rb CHANGED
@@ -3,7 +3,7 @@ class Tester < GreenMidget::Base
3
3
  attr_accessor :text
4
4
 
5
5
  def initialize(text = '')
6
- self.text = text
6
+ @text = text
7
7
  end
8
8
 
9
9
  def words
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: green_midget
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:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
17
- requirement: &2152593220 !ruby/object:Gem::Requirement
17
+ requirement: &2152860260 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2152593220
25
+ version_requirements: *2152860260
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rspec
28
- requirement: &2152592800 !ruby/object:Gem::Requirement
28
+ requirement: &2152859840 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *2152592800
36
+ version_requirements: *2152859840
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &2152592380 !ruby/object:Gem::Requirement
39
+ requirement: &2152859420 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *2152592380
47
+ version_requirements: *2152859420
48
48
  description: Naive Bayesian Classifier with customizable features
49
49
  email:
50
50
  - nikola@howkul.info
@@ -63,13 +63,15 @@ files:
63
63
  - Rakefile
64
64
  - benchmark/benchmark.rb
65
65
  - benchmark/test.rb
66
- - db/migrate/create_green_midget_records.rb
66
+ - extensions/green_midget_check.rb
67
+ - extensions/sample.rb
67
68
  - green_midget.gemspec
68
- - lib/extensions/green_midget_check.rb
69
- - lib/extensions/sample.rb
70
69
  - lib/green_midget.rb
71
70
  - lib/green_midget/base.rb
72
71
  - lib/green_midget/constants.rb
72
+ - lib/green_midget/db/migrate/create_green_midget_records.rb
73
+ - lib/green_midget/extensions/classifier.rb
74
+ - lib/green_midget/extensions/sample.rb
73
75
  - lib/green_midget/green_midget.rb
74
76
  - lib/green_midget/logger.rb
75
77
  - lib/green_midget/models/countable.rb