auser-aska 0.0.6 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/Rakefile +14 -2
  2. data/aska.gemspec +1 -1
  3. data/lib/aska.rb +9 -2
  4. data/spec/rules_spec.rb +4 -1
  5. metadata +1 -1
data/Rakefile CHANGED
@@ -1,3 +1,6 @@
1
+ require "rubygems"
2
+ require "rake"
3
+
1
4
  begin
2
5
  require 'echoe'
3
6
  Echoe.new("aska") do |p|
@@ -6,7 +9,7 @@ begin
6
9
  p.summary = "The basics of an expert system"
7
10
  p.url = "http://blog.citrusbyte.com"
8
11
  p.dependencies = []
9
- p.version = "0.0.6"
12
+ p.version = "0.0.9"
10
13
  p.install_message =<<-EOM
11
14
 
12
15
  Aska - Expert system basics
@@ -17,8 +20,15 @@ begin
17
20
  EOM
18
21
  p.include_rakefile = true
19
22
  end
20
- rescue Exception => e
23
+ rescue LoadError => boom
24
+ puts "You are missing a dependency required for meta-operations on this gem."
25
+ puts "#{boom.to_s.capitalize}."
21
26
 
27
+ # if you still want tests when Echoe is not present
28
+ desc 'Run the test suite.'
29
+ task :test do
30
+ system "ruby -Ibin:lib:test some_tests_test.rb" # or whatever
31
+ end
22
32
  end
23
33
 
24
34
  namespace(:pkg) do
@@ -68,5 +78,7 @@ namespace(:pkg) do
68
78
  desc "Release them gem to the gem server"
69
79
  task :release => :prerelease do
70
80
  `git push origin master`
81
+ `mv #{::File.expand_path(::File.dirname(__FILE__))}/pkg/*.gem #{::File.expand_path(::File.dirname(__FILE__))}/pkg/poolparty-latest.gem`
82
+ `git add pkg/poolparty-latest.gem -f`
71
83
  end
72
84
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{aska}
3
- s.version = "0.0.6"
3
+ s.version = "0.0.9"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new("= 1.2") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Ari Lerner"]
@@ -7,6 +7,7 @@ module Aska
7
7
  def rules(name=:rules, arr=[])
8
8
  returning look_up_rules(name) do |rs|
9
9
  arr.each do |line|
10
+ next unless line
10
11
  k = line[/(.+)[=\\\<\>](.*)/, 1].gsub(/\s+/, '')
11
12
  v = line[/(.+)[=\\<>](.*)/, 2].gsub(/\s+/, '')
12
13
  m = line[/[=\\<>]/, 0].gsub(/\s+/, '')
@@ -25,13 +26,13 @@ module Aska
25
26
  attr_writer k.to_sym unless respond_to?("#{k}=".to_sym)
26
27
  end
27
28
  def look_up_rules(name)
28
- defined_rules[name.to_sym] ||= []
29
+ defined_rules[name.to_sym] ||= Rules.new
29
30
  end
30
31
  def are_rules?(name)
31
32
  !look_up_rules(name).empty?
32
33
  end
33
34
  def aska_attr_accessors
34
- @@aska_attr_accessors ||= []
35
+ @aska_attr_accessors ||= Rules.new
35
36
  end
36
37
  def defined_rules
37
38
  @defined_rules ||= {}
@@ -101,4 +102,10 @@ module Aska
101
102
  receiver.extend ClassMethods
102
103
  receiver.send :include, InstanceMethods
103
104
  end
105
+
106
+ class Rules < Array
107
+ def to_s
108
+ self.map {|r| v=r.keys.first;"'#{v} #{r[v][0]} #{r[v][1]}'"}.join(", ")
109
+ end
110
+ end
104
111
  end
@@ -16,7 +16,10 @@ describe "Rules" do
16
16
  @car.rules.class.should == Hash
17
17
  end
18
18
  it "should be able to look up the rules based on the name into an array" do
19
- @car.names.class.should == Array
19
+ @car.names.class.should == Aska::Rules
20
+ end
21
+ it "should be able to turn them into a string" do
22
+ @car.names.to_s.should == "'x > 0', 'y > 0', 'x > y'"
20
23
  end
21
24
  it "should be able to say that rules are defined when they are defined" do
22
25
  @car.names.should_not be_nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auser-aska
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Lerner