netica 0.0.5-java → 0.0.6-java

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/CONTRIBUTING.md ADDED
@@ -0,0 +1,8 @@
1
+ # Contributing
2
+
3
+ 1. Fork it
4
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
5
+ 3. Make your changes, including any tests.
6
+ 4. Once your tests pass, commit your changes (`git commit -am 'Add some feature'`)
7
+ 5. Push to the branch (`git push origin my-new-feature`)
8
+ 6. Create new Pull Request
data/README.md CHANGED
@@ -65,14 +65,13 @@ Then, re-read the value of the Belief node.
65
65
  0.09241089224815369
66
66
  => 0.09241089224815369
67
67
 
68
+ ## Release Notes
68
69
 
69
- ## Contributing
70
+ ### Version 0.0.6
70
71
 
71
- 1. Fork it
72
- 2. Create your feature branch (`git checkout -b my-new-feature`)
73
- 3. Commit your changes (`git commit -am 'Add some feature'`)
74
- 4. Push to the branch (`git push origin my-new-feature`)
75
- 5. Create new Pull Request
72
+ * Changed BayesNetwork#getNode to BayesNetwork#node
73
+ * Find a location for the NeticaJ.jar file using `rake netica:java_library_path`
74
+ * Expand documentation
76
75
 
77
76
  ## Legal
78
77
 
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  require 'rspec'
3
3
  require 'rspec/core/rake_task'
4
+
4
5
  RSpec::Core::RakeTask.new do |t|
5
6
  t.rspec_opts = %w(--format progress --colour)
6
7
  end
data/lib/netica.rb CHANGED
@@ -8,7 +8,9 @@ require "netica/node"
8
8
  require "netica/node_list"
9
9
  require "netica/bayes_network"
10
10
  require "netica/active_network"
11
+ require "netica/java_library_path"
11
12
 
12
13
  module Netica
13
14
  include_package "norsys.netica"
15
+ require "netica/railtie" if defined?(Rails)
14
16
  end
@@ -1,6 +1,7 @@
1
1
  module Netica
2
2
  require 'json'
3
3
 
4
+ # provides a persistable object container for a Netica Bayes net.
4
5
  class ActiveNetwork
5
6
  attr_accessor :network, :token
6
7
 
@@ -18,10 +19,18 @@ module Netica
18
19
  token
19
20
  end
20
21
 
22
+ # Increment a specified network node
23
+ #
24
+ # @param nodeName [String] name of the node to be incremented
25
+ # @return [true,false,nil] outcome of the incr() attempt
21
26
  def incr_node(nodeName)
22
- network.getNode(nodeName).incr() if network
27
+ network.node(nodeName).incr() if network
23
28
  end
24
29
 
30
+ # Export the state of the ActiveNetwork as a Hash
31
+ #
32
+ # @param nodeName [String] name of the node to be incremented
33
+ # @return [Hash] network state and object class name
25
34
  def state
26
35
  {
27
36
  :network => network.state,
@@ -29,12 +38,20 @@ module Netica
29
38
  }
30
39
  end
31
40
 
41
+ # Save ActiveNetwork to an associated redis store, if one is defined.
42
+ #
43
+ # @return [true,false,nil] outcome of redis.set, or nil if redis is not found
32
44
  def save
33
45
  if Netica::Environment.instance.redis
34
- Netica::Environment.instance.redis.set(token, JSON.dump(state))
46
+ return Netica::Environment.instance.redis.set(token, JSON.dump(state))
35
47
  end
36
48
  end
37
49
 
50
+ # Retrieve ActiveNetwork from current Netica Environment instance
51
+ # or an associated redis store, if one is defined.
52
+ #
53
+ # @param token [String] identifying token for ActiveNetwork sought
54
+ # @return [ActiveNetwork] ActiveNetwork object found
38
55
  def self.find(token)
39
56
  Netica::Environment.instance.active_networks.each do |an|
40
57
  return an if an.token == token
@@ -51,6 +68,10 @@ module Netica
51
68
  return nil
52
69
  end
53
70
 
71
+ # Export the state of the ActiveNetwork as a Hash
72
+ #
73
+ # @param hash [Hash] network state to be restored
74
+ # @return [Hash] network state and object class name
54
75
  def load_from_saved_state(hash)
55
76
  self.network = BayesNetwork.new(hash["network"]["dne_file_path"])
56
77
  network.load_from_state(hash["network"])
@@ -9,9 +9,11 @@ module Netica
9
9
  end
10
10
  end
11
11
 
12
- # retrieve a node from the associated network
13
- # @param String nodeName
14
- # @return Node
12
+ # retrieve the node from the associated network whose name matches
13
+ # the "nodeName" supplied.
14
+ #
15
+ # @param nodeName [String] Name of the node to find
16
+ # @return [Node]
15
17
  def node(nodeName)
16
18
  nodes.select{ |n| n if n.name == nodeName }[0]
17
19
  end
@@ -31,7 +33,7 @@ module Netica
31
33
  def load_from_state(network_hash)
32
34
  NeticaLogger.info "network_hash => #{network_hash}"
33
35
  network_hash["decision_nodes"].each do |node_name, node_value|
34
- getNode(node_name).value = node_value
36
+ node(node_name).value = node_value
35
37
  end
36
38
  end
37
39
 
@@ -11,6 +11,10 @@ module Netica
11
11
  @@redis = nil
12
12
  @@logfile = nil
13
13
 
14
+ # Initializes logging, a Netica Environ object and a connection to
15
+ # redis, if defined.
16
+ #
17
+ # @param settings [Hash] Settings for initialization
14
18
  def self.engage(settings = {})
15
19
  if settings[:logfile]
16
20
  @@logfile = settings[:logfile]
@@ -0,0 +1,14 @@
1
+ include Java
2
+ java_import java.lang.System
3
+
4
+ module Netica
5
+ class Tools
6
+ def self.library_path
7
+ str = "Place NeticaJ.jar in one of the following locations:\n"
8
+ System.getProperties["java.library.path"].split(':').each do |pth|
9
+ str << " => #{pth}\n" unless pth == '.'
10
+ end
11
+ str
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ require 'netica'
2
+ require 'rails'
3
+ module Netica
4
+ class Railtie < Rails::Railtie
5
+ rake_tasks do
6
+ require "#{File.dirname(__FILE__)}/../tasks/netica.rake"
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Netica
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -0,0 +1,8 @@
1
+ require "#{File.dirname(__FILE__)}/../netica/java_library_path"
2
+
3
+ namespace :netica do
4
+ desc "Output java.library.path"
5
+ task :java_library_path do
6
+ puts Netica::Tools.library_path
7
+ end
8
+ end
@@ -22,7 +22,7 @@ describe Netica::ActiveNetwork do
22
22
  @active_network.network.nodes.length.should == 8
23
23
  end
24
24
 
25
- it "should export it state as a hash" do
25
+ it "should export its state as a hash" do
26
26
  @active_network.network.state.should be_an_instance_of(Hash)
27
27
  end
28
28
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netica
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: java
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-14 00:00:00.000000000 Z
12
+ date: 2013-04-23 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Netica Bayes Network Management
15
15
  email:
@@ -20,6 +20,7 @@ extra_rdoc_files: []
20
20
  files:
21
21
  - ".gitignore"
22
22
  - ".rspec"
23
+ - CONTRIBUTING.md
23
24
  - Gemfile
24
25
  - LICENSE.txt
25
26
  - README.md
@@ -30,11 +31,14 @@ files:
30
31
  - lib/netica/active_network.rb
31
32
  - lib/netica/bayes_network.rb
32
33
  - lib/netica/environment.rb
34
+ - lib/netica/java_library_path.rb
33
35
  - lib/netica/netica_logger.rb
34
36
  - lib/netica/node.rb
35
37
  - lib/netica/node_list.rb
38
+ - lib/netica/railtie.rb
36
39
  - lib/netica/state.rb
37
40
  - lib/netica/version.rb
41
+ - lib/tasks/netica.rake
38
42
  - netica.gemspec
39
43
  - spec/netica/active_network_spec.rb
40
44
  - spec/netica/environment_spec.rb