green_midget 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.
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