smartfox 0.2.1 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -0
- data/VERSION +1 -1
- data/lib/smartfox.rb +3 -0
- data/lib/smartfox/client.rb +33 -8
- data/lib/smartfox/message.rb +7 -0
- data/lib/smartfox/packet.rb +6 -5
- data/lib/smartfox/room.rb +112 -0
- data/lib/smartfox/socket/connection.rb +3 -2
- data/lib/smartfox/user.rb +14 -0
- data/smartfox.gemspec +6 -9
- data/spec/smartfox_spec.rb +63 -3
- metadata +19 -11
- data/nbproject/configs/Spec.properties +0 -1
- data/nbproject/private/config.properties +0 -1
- data/nbproject/private/configs/Spec.properties +0 -1
- data/nbproject/private/private.properties +0 -3
- data/nbproject/private/private.xml +0 -4
- data/nbproject/private/rake-d.txt +0 -0
- data/nbproject/project.properties +0 -8
- data/nbproject/project.xml +0 -15
data/Rakefile
CHANGED
@@ -13,6 +13,8 @@ begin
|
|
13
13
|
gem.add_development_dependency "rspec", ">= 1.2.9"
|
14
14
|
gem.add_dependency 'json'
|
15
15
|
gem.add_dependency 'builder'
|
16
|
+
gem.add_dependency 'libxml-ruby'
|
17
|
+
gem.files.exclude 'nbproject/**'
|
16
18
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
17
19
|
end
|
18
20
|
Jeweler::GemcutterTasks.new
|
@@ -30,6 +32,7 @@ Spec::Rake::SpecTask.new(:rcov) do |spec|
|
|
30
32
|
spec.libs << 'lib' << 'spec'
|
31
33
|
spec.pattern = 'spec/**/*_spec.rb'
|
32
34
|
spec.rcov = true
|
35
|
+
spec.rcov_opts = ['--exclude', "features,kernel,load-diff-lcs\.rb,instance_exec\.rb,lib/spec.rb,lib/spec/runner.rb,^spec/*,bin/spec,examples,/gems,/Library/Ruby,\.autotest,#{ENV['GEM_HOME']}"]
|
33
36
|
end
|
34
37
|
|
35
38
|
task :spec => :check_dependencies
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.1
|
data/lib/smartfox.rb
CHANGED
@@ -8,6 +8,9 @@ module SmartFox
|
|
8
8
|
autoload :Socket, 'smartfox/socket'
|
9
9
|
autoload :BlueBox, 'smartfox/blue_box'
|
10
10
|
autoload :Packet, 'smartfox/packet'
|
11
|
+
autoload :Room, 'smartfox/room'
|
12
|
+
autoload :User, 'smartfox/user'
|
13
|
+
autoload :Message, 'smartfox/message'
|
11
14
|
|
12
15
|
Logger = Logger.new(STDOUT)
|
13
16
|
|
data/lib/smartfox/client.rb
CHANGED
@@ -8,7 +8,7 @@ class SmartFox::Client
|
|
8
8
|
class TransportTimeoutError < SmartFox::SmartFoxError; end
|
9
9
|
|
10
10
|
attr_reader :connected, :room_list, :buddy_list, :server, :port
|
11
|
-
attr_reader :current_room
|
11
|
+
attr_reader :current_room, :users, :user_id
|
12
12
|
alias_method :connected?, :connected
|
13
13
|
|
14
14
|
CLIENT_VERSION = "1.5.8"
|
@@ -27,6 +27,8 @@ class SmartFox::Client
|
|
27
27
|
ACTION_AUTO_JOIN = 'autoJoin'
|
28
28
|
ACTION_UPDATE_ROOMS = 'getRmList'
|
29
29
|
ACTION_ROOM_LIST = 'rmList'
|
30
|
+
ACTION_JOIN_OK = 'joinOK'
|
31
|
+
ACTION_JOIN_FAIL = 'joinKO'
|
30
32
|
|
31
33
|
EXTENDED_RESPONSE = 'xtRes'
|
32
34
|
|
@@ -39,7 +41,8 @@ class SmartFox::Client
|
|
39
41
|
@server = options[:server] || 'localhost'
|
40
42
|
@port = options[:port]
|
41
43
|
@events = {}
|
42
|
-
@rooms =
|
44
|
+
@rooms = {}
|
45
|
+
@users = {}
|
43
46
|
end
|
44
47
|
|
45
48
|
def connect()
|
@@ -138,6 +141,14 @@ class SmartFox::Client
|
|
138
141
|
end
|
139
142
|
end
|
140
143
|
|
144
|
+
def parse_user(node)
|
145
|
+
if user = @users[node['i'].to_i]
|
146
|
+
user.parse(node)
|
147
|
+
else
|
148
|
+
@users[node['i'].to_i] = SmartFox::User.parse(node)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
141
152
|
private
|
142
153
|
def send_packet(header, action, room_id = -1)
|
143
154
|
xml = Builder::XmlMarkup.new()
|
@@ -181,18 +192,32 @@ class SmartFox::Client
|
|
181
192
|
def handle_system_packet(packet)
|
182
193
|
case packet.action
|
183
194
|
when ACTION_LOGIN_OK
|
184
|
-
@username = packet.data['n']
|
185
|
-
@moderator = packet.data['mod'] != "0"
|
186
|
-
@
|
187
|
-
SmartFox::Logger.info "SmartFox::Client logged in as #{@username}"
|
195
|
+
@username = packet.data.first['n']
|
196
|
+
@moderator = packet.data.first['mod'] != "0"
|
197
|
+
@user_id = packet.data.first['id'].to_i
|
198
|
+
SmartFox::Logger.info "SmartFox::Client logged in as #{@username} (ID:#{@user_id})"
|
188
199
|
raise_event(:logged_in, self)
|
189
200
|
when ACTION_ROOM_LIST
|
190
201
|
@rooms.clear
|
191
|
-
packet.data.children.each do |room|
|
192
|
-
|
202
|
+
packet.data.first.children.each do |room|
|
203
|
+
room_object = SmartFox::Room.parse(self, room)
|
204
|
+
@rooms[room_object.id] = room_object
|
193
205
|
end
|
194
206
|
|
195
207
|
raise_event(:rooms_updated, self, @rooms)
|
208
|
+
when ACTION_JOIN_OK
|
209
|
+
@current_room = @rooms[packet.room]
|
210
|
+
SmartFox::Logger.info "SmartFox::Client joined room #{packet.room}"
|
211
|
+
SmartFox::Logger.debug "SmartFox::Client#handle_system_packet ACTION_JOIN_OK data => #{packet.data}"
|
212
|
+
@current_room.joined
|
213
|
+
@current_room.parse_users(packet.data.find{|n| n.name == 'uLs'})
|
214
|
+
raise_event(:room_joined, self, @current_room)
|
215
|
+
when ACTION_JOIN_FAIL
|
216
|
+
raise_event(:room_join_failed, self)
|
217
|
+
else
|
218
|
+
if packet.room > 0
|
219
|
+
@rooms[packet.room].handle_system_packet(packet)
|
220
|
+
end
|
196
221
|
end
|
197
222
|
end
|
198
223
|
|
data/lib/smartfox/packet.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'libxml'
|
2
2
|
|
3
3
|
class SmartFox::Packet
|
4
|
-
attr_reader :action, :header, :room, :data
|
4
|
+
attr_reader :action, :header, :room, :data, :body
|
5
5
|
|
6
|
-
def initialize(header, action, room = 0, extra = nil)
|
6
|
+
def initialize(header, action, body, room = 0, extra = nil)
|
7
7
|
@header = header
|
8
8
|
@action = action
|
9
9
|
@room = room.to_i
|
10
|
+
@body = body
|
10
11
|
@data = (@header == SmartFox::Client::HEADER_EXTENDED ? SmartFox::Packet.parse_extended(extra) : extra)
|
11
12
|
end
|
12
13
|
|
@@ -27,8 +28,8 @@ class SmartFox::Packet
|
|
27
28
|
header = document.root['t']
|
28
29
|
action = document.root.child['action']
|
29
30
|
room = document.root.child['r']
|
30
|
-
extra = document.root.child.child
|
31
|
-
new(header, action, room, extra)
|
31
|
+
extra = document.root.child.children? ? document.root.child.children : nil
|
32
|
+
new(header, action, document.root.child, room, extra)
|
32
33
|
end
|
33
34
|
|
34
35
|
def self.parse_json(data)
|
@@ -41,7 +42,7 @@ class SmartFox::Packet
|
|
41
42
|
|
42
43
|
def self.parse_extended(data)
|
43
44
|
SmartFox::Logger.debug "SmartFox::Packet.parse_extended('#{data}')"
|
44
|
-
document = LibXML::XML::Parser.string(data.content).parse
|
45
|
+
document = LibXML::XML::Parser.string(data.first.content).parse
|
45
46
|
parse_extended_object document.root
|
46
47
|
end
|
47
48
|
|
data/lib/smartfox/room.rb
CHANGED
@@ -1,3 +1,115 @@
|
|
1
1
|
class SmartFox::Room
|
2
|
+
attr_reader :id, :name, :private, :temporary, :game, :max_users, :users, :transcript
|
2
3
|
|
4
|
+
EVENTS = [ :message_sent, :message_received, :message_received_self, :message_received_other, :user_joined, :user_left, :user_count_updated ]
|
5
|
+
ACTION_PUBLISH_MESSAGE = 'pubMsg'
|
6
|
+
ACTION_USER_ENTER = 'uER'
|
7
|
+
ACTION_UPDATE_USER_COUNT = 'uCount'
|
8
|
+
|
9
|
+
def initialize(client, node)
|
10
|
+
@client = client
|
11
|
+
@id = node['id'].to_i
|
12
|
+
@name = node.first.content
|
13
|
+
@private = node['priv'] == '1'
|
14
|
+
@temporary = node['temp'] == '1'
|
15
|
+
@current_users = node['ucnt'].to_i
|
16
|
+
@max_users = node['maxu'].to_i
|
17
|
+
@game = node['game'] == '1'
|
18
|
+
@events = {}
|
19
|
+
@transcript = []
|
20
|
+
|
21
|
+
@users = nil
|
22
|
+
SmartFox::Logger.debug "SmartFox::Room.new -> #{inspect}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def current_users
|
26
|
+
@users ? @users.length : @current_users
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.parse(client, node)
|
30
|
+
new(client, node)
|
31
|
+
end
|
32
|
+
|
33
|
+
def inspect
|
34
|
+
"#<#{self.class.name}:#{object_id} id:#{@id} name:#{@name}#{' temporary' if @temporary}#{' private' if @private} current_users:#{@current_users} max_users:#{@max_users}>"
|
35
|
+
end
|
36
|
+
|
37
|
+
def join
|
38
|
+
@client.join_room self
|
39
|
+
end
|
40
|
+
|
41
|
+
def joined
|
42
|
+
@transcript.clear
|
43
|
+
end
|
44
|
+
|
45
|
+
def parse_users(users)
|
46
|
+
@users = {}
|
47
|
+
|
48
|
+
users.children.each do |child|
|
49
|
+
user = @client.parse_user(child)
|
50
|
+
@users[user.id] = user
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def send_message(message)
|
55
|
+
SmartFox::Logger.info "SmartFox::Room#send_message('#{message}')"
|
56
|
+
@client.send :send_packet, SmartFox::Client::HEADER_SYSTEM, ACTION_PUBLISH_MESSAGE, self.id do |packet|
|
57
|
+
packet.txt do |txt|
|
58
|
+
txt.cdata! message
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
@transcript << SmartFox::Message.new(@client.users[@client.user_id], message, self)
|
63
|
+
|
64
|
+
raise_event :message_sent, @client, self, message
|
65
|
+
end
|
66
|
+
|
67
|
+
def handle_system_packet(packet)
|
68
|
+
case packet.action
|
69
|
+
when ACTION_PUBLISH_MESSAGE
|
70
|
+
text = packet.data.find{|c| c.name == 'txt'}.child.content
|
71
|
+
user_id = packet.data.find{|c| c.name == 'user'}['id'].to_i
|
72
|
+
user = @client.users[user_id]
|
73
|
+
message = SmartFox::Message.new(user, text, self)
|
74
|
+
SmartFox::Logger.info "SmartFox::Room did receive message #{message.inspect}"
|
75
|
+
@transcript << message unless user.id == @client.user_id
|
76
|
+
|
77
|
+
SmartFox::Logger.info "SmartFox::Room#handle_system_packet ACTION_PUBLISH_MESSAGE #{user.id} == #{@client.user_id}"
|
78
|
+
if user.id == @client.user_id
|
79
|
+
SmartFox::Logger.debug "SmartFox::Room#handle_system_packet ACTION_PUBLISH_MESSAGE from self"
|
80
|
+
raise_event :message_received_self, @client, @room, message
|
81
|
+
else
|
82
|
+
SmartFox::Logger.debug "SmartFox::Room#handle_system_packet ACTION_PUBLISH_MESSAGE from #{user.name}"
|
83
|
+
raise_event :message_received_other, @client, @room, message
|
84
|
+
end
|
85
|
+
raise_event :message_received, @client, @room, message
|
86
|
+
when ACTION_USER_ENTER
|
87
|
+
packet.data.each do |u|
|
88
|
+
user = @client.parse_user(u)
|
89
|
+
@users[user.id] = user
|
90
|
+
raise_event :user_joined, @client, self, user
|
91
|
+
end
|
92
|
+
when ACTION_UPDATE_USER_COUNT
|
93
|
+
old_count = @current_users
|
94
|
+
@current_users = packet.body['u'].to_i
|
95
|
+
raise_event :user_count_updated, @client, self, { :old => old_count, :new => @current_users }
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def add_handler(event, &proc)
|
100
|
+
@events[event.to_sym] = [] unless @events[event.to_sym]
|
101
|
+
@events[event.to_sym] << proc
|
102
|
+
end
|
103
|
+
|
104
|
+
private
|
105
|
+
def raise_event(event_name, *params)
|
106
|
+
event = @events[event_name.to_sym]
|
107
|
+
return unless event
|
108
|
+
event.each do |event_handler|
|
109
|
+
event_handler.call(*params)
|
110
|
+
end
|
111
|
+
|
112
|
+
# Pass the message upstream to the client as well
|
113
|
+
@client.send :raise_event, event_name, self, *params
|
114
|
+
end
|
3
115
|
end
|
@@ -34,10 +34,11 @@ class SmartFox::Socket::Connection
|
|
34
34
|
|
35
35
|
def disconnect
|
36
36
|
@disconnecting = true
|
37
|
+
@socket.close if @socket
|
37
38
|
while @connected
|
38
39
|
Thread.pass
|
39
40
|
end
|
40
|
-
|
41
|
+
|
41
42
|
end
|
42
43
|
|
43
44
|
def send_data(data)
|
@@ -52,7 +53,7 @@ class SmartFox::Socket::Connection
|
|
52
53
|
|
53
54
|
buffer = String.new
|
54
55
|
begin
|
55
|
-
@socket.
|
56
|
+
buffer = @socket.readpartial(4096)
|
56
57
|
|
57
58
|
@buffer += buffer if buffer
|
58
59
|
|
data/smartfox.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{smartfox}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Richard Penwell"]
|
@@ -27,18 +27,12 @@ Gem::Specification.new do |s|
|
|
27
27
|
"lib/smartfox/blue_box.rb",
|
28
28
|
"lib/smartfox/blue_box/connection.rb",
|
29
29
|
"lib/smartfox/client.rb",
|
30
|
+
"lib/smartfox/message.rb",
|
30
31
|
"lib/smartfox/packet.rb",
|
31
32
|
"lib/smartfox/room.rb",
|
32
33
|
"lib/smartfox/socket.rb",
|
33
34
|
"lib/smartfox/socket/connection.rb",
|
34
|
-
"
|
35
|
-
"nbproject/private/config.properties",
|
36
|
-
"nbproject/private/configs/Spec.properties",
|
37
|
-
"nbproject/private/private.properties",
|
38
|
-
"nbproject/private/private.xml",
|
39
|
-
"nbproject/private/rake-d.txt",
|
40
|
-
"nbproject/project.properties",
|
41
|
-
"nbproject/project.xml",
|
35
|
+
"lib/smartfox/user.rb",
|
42
36
|
"smartfox.gemspec",
|
43
37
|
"spec/packet_spec.rb",
|
44
38
|
"spec/smartfox_spec.rb",
|
@@ -66,15 +60,18 @@ Gem::Specification.new do |s|
|
|
66
60
|
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
67
61
|
s.add_runtime_dependency(%q<json>, [">= 0"])
|
68
62
|
s.add_runtime_dependency(%q<builder>, [">= 0"])
|
63
|
+
s.add_runtime_dependency(%q<libxml-ruby>, [">= 0"])
|
69
64
|
else
|
70
65
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
71
66
|
s.add_dependency(%q<json>, [">= 0"])
|
72
67
|
s.add_dependency(%q<builder>, [">= 0"])
|
68
|
+
s.add_dependency(%q<libxml-ruby>, [">= 0"])
|
73
69
|
end
|
74
70
|
else
|
75
71
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
76
72
|
s.add_dependency(%q<json>, [">= 0"])
|
77
73
|
s.add_dependency(%q<builder>, [">= 0"])
|
74
|
+
s.add_dependency(%q<libxml-ruby>, [">= 0"])
|
78
75
|
end
|
79
76
|
end
|
80
77
|
|
data/spec/smartfox_spec.rb
CHANGED
@@ -80,8 +80,68 @@ describe SmartFox::Client do
|
|
80
80
|
@connection.refresh_rooms
|
81
81
|
updated_waiter.wait
|
82
82
|
|
83
|
-
room_list.should_not
|
83
|
+
room_list.should_not be_empty
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should join a room with auto join" do
|
87
|
+
login_to_connection
|
88
|
+
room_joined_waiter = Waiter.new
|
89
|
+
@connection.add_handler(:room_joined) { |client, room| room_joined_waiter.fire }
|
90
|
+
@connection.add_handler(:rooms_updated) { |client, rooms| @connection.auto_join }
|
91
|
+
@connection.refresh_rooms
|
92
|
+
room_joined_waiter.wait
|
93
|
+
|
94
|
+
@connection.current_room.current_users.should == 1
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should see it's own messages sent from the room" do
|
98
|
+
login_to_connection
|
99
|
+
message_sent_waiter = Waiter.new
|
100
|
+
@connection.add_handler(:room_joined) do |client, room|
|
101
|
+
room.add_handler(:message_sent) { message_sent_waiter.fire }
|
102
|
+
room.send_message "Hello world"
|
103
|
+
end
|
104
|
+
@connection.add_handler(:rooms_updated) { |client, rooms| @connection.auto_join }
|
105
|
+
@connection.refresh_rooms
|
106
|
+
message_sent_waiter.wait
|
107
|
+
|
108
|
+
@connection.current_room.transcript.count.should == 1
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should see it's own messages received from the room" do
|
112
|
+
login_to_connection
|
113
|
+
message_received_waiter = Waiter.new
|
114
|
+
@connection.add_handler(:room_joined) do |client, room|
|
115
|
+
room.add_handler(:message_received_self) { message_received_waiter.fire }
|
116
|
+
room.send_message "Hello world"
|
117
|
+
end
|
118
|
+
@connection.add_handler(:rooms_updated) { |client, rooms| @connection.auto_join }
|
119
|
+
@connection.refresh_rooms
|
120
|
+
message_received_waiter.wait
|
121
|
+
|
122
|
+
@connection.current_room.transcript.count.should == 1
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should see others messages in the room, and play nicely if there are two instances" do
|
126
|
+
login_to_connection
|
127
|
+
message_received_waiter = Waiter.new
|
128
|
+
@connection.add_handler(:room_joined) do |client, room|
|
129
|
+
room.add_handler(:message_received_other) { message_received_waiter.fire }
|
130
|
+
end
|
131
|
+
@connection.add_handler(:rooms_updated) { |client, rooms| @connection.auto_join }
|
132
|
+
@connection.refresh_rooms
|
133
|
+
|
134
|
+
second_connection = SmartFox::Client.new()
|
135
|
+
second_connection.add_handler(:room_joined) do |client, room|
|
136
|
+
room.send_message "From two"
|
137
|
+
end
|
138
|
+
second_connection.add_handler(:connected) { |client| client.login('simpleChat', 'other') }
|
139
|
+
second_connection.add_handler(:logged_in) { |client| client.refresh_rooms }
|
140
|
+
second_connection.add_handler(:rooms_updated) {|client, rooms| client.auto_join }
|
141
|
+
second_connection.connect
|
142
|
+
|
143
|
+
message_received_waiter.wait
|
144
|
+
|
145
|
+
@connection.current_room.transcript.count.should == 1
|
84
146
|
end
|
85
|
-
|
86
|
-
it "should fall back on BlueBox if needed"
|
87
147
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartfox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 3
|
9
9
|
- 1
|
10
|
-
version: 0.
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Richard Penwell
|
@@ -62,6 +62,20 @@ dependencies:
|
|
62
62
|
version: "0"
|
63
63
|
type: :runtime
|
64
64
|
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: libxml-ruby
|
67
|
+
prerelease: false
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
type: :runtime
|
78
|
+
version_requirements: *id004
|
65
79
|
description: Provides a client library for the SmartFox realtime communication server, including BlueBox extensions.
|
66
80
|
email: self@richardpenwell.me
|
67
81
|
executables: []
|
@@ -82,18 +96,12 @@ files:
|
|
82
96
|
- lib/smartfox/blue_box.rb
|
83
97
|
- lib/smartfox/blue_box/connection.rb
|
84
98
|
- lib/smartfox/client.rb
|
99
|
+
- lib/smartfox/message.rb
|
85
100
|
- lib/smartfox/packet.rb
|
86
101
|
- lib/smartfox/room.rb
|
87
102
|
- lib/smartfox/socket.rb
|
88
103
|
- lib/smartfox/socket/connection.rb
|
89
|
-
-
|
90
|
-
- nbproject/private/config.properties
|
91
|
-
- nbproject/private/configs/Spec.properties
|
92
|
-
- nbproject/private/private.properties
|
93
|
-
- nbproject/private/private.xml
|
94
|
-
- nbproject/private/rake-d.txt
|
95
|
-
- nbproject/project.properties
|
96
|
-
- nbproject/project.xml
|
104
|
+
- lib/smartfox/user.rb
|
97
105
|
- smartfox.gemspec
|
98
106
|
- spec/packet_spec.rb
|
99
107
|
- spec/smartfox_spec.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
main.file=spec/spec_helper.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
config=Spec
|
@@ -1 +0,0 @@
|
|
1
|
-
work.dir=/Users/penwellr/Development/smartfox
|
File without changes
|
data/nbproject/project.xml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project xmlns="http://www.netbeans.org/ns/project/1">
|
3
|
-
<type>org.netbeans.modules.ruby.rubyproject</type>
|
4
|
-
<configuration>
|
5
|
-
<data xmlns="http://www.netbeans.org/ns/ruby-project/1">
|
6
|
-
<name>smartfox</name>
|
7
|
-
<source-roots>
|
8
|
-
<root id="src.dir"/>
|
9
|
-
</source-roots>
|
10
|
-
<test-roots>
|
11
|
-
<root id="test.src.dir"/>
|
12
|
-
</test-roots>
|
13
|
-
</data>
|
14
|
-
</configuration>
|
15
|
-
</project>
|