bigrecord 0.0.9 → 0.0.10
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/README.rdoc +2 -3
- data/VERSION +1 -1
- data/lib/big_record/abstract_base.rb +14 -21
- data/lib/big_record/base.rb +30 -38
- data/lib/big_record/connection_adapters/abstract_adapter.rb +17 -1
- data/lib/big_record/connection_adapters/column.rb +0 -1
- data/lib/big_record/dynamic_schema.rb +0 -14
- data/lib/big_record/timestamp.rb +2 -28
- data/lib/bigrecord.rb +1 -1
- data/spec/unit/find_spec.rb +0 -10
- data/spec/unit/scanner_spec.rb +5 -9
- metadata +2 -4
- data/spec/debug.log +0 -232
- data/spec/unit/callback_spec.rb +0 -1
data/README.rdoc
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
A Ruby Object/Data Mapper for distributed column-oriented data stores (inspired by BigTable) such as HBase. Intended to work as a drop-in for Rails applications.
|
4
4
|
|
5
5
|
== Features
|
6
|
-
*
|
6
|
+
* Dynamic schemas (due to the schema-less design of BigTable).
|
7
7
|
* Support for column-oriented data stores.
|
8
8
|
* Similar usage to Active Record.
|
9
|
-
*
|
9
|
+
* Embedded records that store within a single table row.
|
10
10
|
* Automatic versioning.
|
11
11
|
* Scalability (depending on the data store used).
|
12
12
|
|
@@ -48,6 +48,5 @@ Big Record is released under the MIT license.
|
|
48
48
|
== Links
|
49
49
|
|
50
50
|
* Contact Us
|
51
|
-
* Google Group - http://groups.google.com/group/bigrecord
|
52
51
|
* Website - http://www.bigrecord.org
|
53
52
|
* IRC Channel - <tt>#bigrecord</tt> on irc.freenode.net
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.10
|
@@ -367,14 +367,14 @@ module BigRecord
|
|
367
367
|
write_attribute(self.class.primary_key, value)
|
368
368
|
end
|
369
369
|
|
370
|
-
# Returns true if this object hasn't been saved yet -- that is, a record for the object doesn't
|
370
|
+
# Returns true if this object hasn't been saved yet -- that is, a record for the object doesn't
|
371
|
+
# yet exist in the data store.
|
371
372
|
def new_record?
|
372
373
|
false
|
373
374
|
end
|
374
375
|
|
375
|
-
#
|
376
|
-
# *
|
377
|
-
# * If a record already exist: Updates the record with values matching those of the object attributes.
|
376
|
+
# * No record exists: Creates a new record with values matching those of the object attributes.
|
377
|
+
# * A record does exist: Updates the record with values matching those of the object attributes.
|
378
378
|
def save
|
379
379
|
raise NotImplemented
|
380
380
|
end
|
@@ -435,7 +435,6 @@ module BigRecord
|
|
435
435
|
end
|
436
436
|
|
437
437
|
protected
|
438
|
-
|
439
438
|
def clone_in_persistence_format
|
440
439
|
validate_attributes_schema
|
441
440
|
|
@@ -683,7 +682,6 @@ module BigRecord
|
|
683
682
|
end
|
684
683
|
|
685
684
|
protected
|
686
|
-
|
687
685
|
# Returns the value of the attribute identified by <tt>attr_name</tt> after it has been typecast (for example,
|
688
686
|
# "2004-12-12" in a data column is cast to a date object, like Date.new(2004, 12, 12)).
|
689
687
|
def read_attribute(attr_name)
|
@@ -703,8 +701,7 @@ module BigRecord
|
|
703
701
|
@attributes[attr_name.to_s]
|
704
702
|
end
|
705
703
|
|
706
|
-
|
707
|
-
|
704
|
+
private
|
708
705
|
# Called on first read access to any given column and generates reader
|
709
706
|
# methods for all columns in the columns_hash if
|
710
707
|
# BigRecord::Base.generate_read_methods is set to true.
|
@@ -781,7 +778,6 @@ module BigRecord
|
|
781
778
|
end
|
782
779
|
|
783
780
|
public
|
784
|
-
|
785
781
|
class << self
|
786
782
|
|
787
783
|
# Evaluate the name of the column of the primary key only once
|
@@ -888,8 +884,7 @@ module BigRecord
|
|
888
884
|
# adds the new column into the model's column hash.
|
889
885
|
#
|
890
886
|
# @param type [Symbol, String] Column type as defined in the source of {ConnectionAdapters::Column#klass}
|
891
|
-
# @
|
892
|
-
# @option options [TrueClass,FalseClass] :collection Whether this column is a collection.
|
887
|
+
# @option options [true,false] :collection Whether this column is a collection.
|
893
888
|
# @option options [String] :alias Define an alias for the column that cannot be inferred. By default, 'attribute:name' will be aliased to 'name'.
|
894
889
|
# @option options [String] :default Default value to set for this column.
|
895
890
|
#
|
@@ -923,7 +918,7 @@ module BigRecord
|
|
923
918
|
end
|
924
919
|
|
925
920
|
# Contains the names of the generated reader methods.
|
926
|
-
def read_methods
|
921
|
+
def read_methods #:nodoc:
|
927
922
|
@read_methods ||= Set.new
|
928
923
|
end
|
929
924
|
|
@@ -1050,15 +1045,7 @@ module BigRecord
|
|
1050
1045
|
read_inheritable_attribute(:attr_create_accessible)
|
1051
1046
|
end
|
1052
1047
|
|
1053
|
-
# Guesses the table name, but does not decorate it with prefix and suffix information.
|
1054
|
-
def undecorated_table_name(class_name = base_class.name)
|
1055
|
-
table_name = Inflector.underscore(Inflector.demodulize(class_name))
|
1056
|
-
table_name = Inflector.pluralize(table_name) if pluralize_table_names
|
1057
|
-
table_name
|
1058
|
-
end
|
1059
|
-
|
1060
1048
|
protected
|
1061
|
-
|
1062
1049
|
def invalidate_views
|
1063
1050
|
@views = nil
|
1064
1051
|
@view_names = nil
|
@@ -1094,10 +1081,16 @@ module BigRecord
|
|
1094
1081
|
type_name.constantize
|
1095
1082
|
end
|
1096
1083
|
|
1084
|
+
public
|
1085
|
+
# Guesses the table name, but does not decorate it with prefix and suffix information.
|
1086
|
+
def undecorated_table_name(class_name = base_class.name)
|
1087
|
+
table_name = Inflector.underscore(Inflector.demodulize(class_name))
|
1088
|
+
table_name = Inflector.pluralize(table_name) if pluralize_table_names
|
1089
|
+
table_name
|
1090
|
+
end
|
1097
1091
|
end
|
1098
1092
|
|
1099
1093
|
protected
|
1100
|
-
|
1101
1094
|
# Handle *? for method_missing.
|
1102
1095
|
def attribute?(attribute_name)
|
1103
1096
|
query_attribute(attribute_name)
|
data/lib/big_record/base.rb
CHANGED
@@ -12,10 +12,8 @@ module BigRecord
|
|
12
12
|
super
|
13
13
|
end
|
14
14
|
|
15
|
-
public
|
16
|
-
|
17
15
|
# New objects can be instantiated as either empty (pass no construction parameter) or pre-set with
|
18
|
-
# attributes but not yet saved (pass a hash with key names matching the associated column names).
|
16
|
+
# attributes but not yet saved (pass a hash with key names matching the associated table column names).
|
19
17
|
# In both instances, valid attribute keys are determined by the column names of the associated table --
|
20
18
|
# hence you can't have attributes that aren't part of the table columns.
|
21
19
|
def initialize(attrs = nil)
|
@@ -26,6 +24,7 @@ module BigRecord
|
|
26
24
|
|
27
25
|
# Returns the value of the attribute identified by <tt>attr_name</tt> after it has been typecast (for example,
|
28
26
|
# "2004-12-12" in a data column is cast to a date object, like Date.new(2004, 12, 12)).
|
27
|
+
# (Alias for the protected read_attribute method).
|
29
28
|
def [](attr_name)
|
30
29
|
if attr_name.ends_with?(":")
|
31
30
|
read_family_attributes(attr_name)
|
@@ -81,7 +80,7 @@ module BigRecord
|
|
81
80
|
end
|
82
81
|
end
|
83
82
|
|
84
|
-
# Read an attribute that defines a column family
|
83
|
+
# Read an attribute that defines a column family.
|
85
84
|
def read_family_attributes(attr_name)
|
86
85
|
attr_name = attr_name.to_s
|
87
86
|
column = column_for_attribute(attr_name)
|
@@ -131,14 +130,24 @@ module BigRecord
|
|
131
130
|
end
|
132
131
|
end
|
133
132
|
|
133
|
+
def set_loaded(name)
|
134
|
+
@loaded_columns ||= []
|
135
|
+
@loaded_columns << name
|
136
|
+
end
|
137
|
+
|
138
|
+
def is_loaded?(name)
|
139
|
+
@loaded_columns ||= []
|
140
|
+
@loaded_columns.include?(name)
|
141
|
+
end
|
142
|
+
|
143
|
+
public
|
134
144
|
# Returns true if this object hasn't been saved yet -- that is, a record for the object doesn't exist yet.
|
135
145
|
def new_record?
|
136
146
|
@new_record
|
137
147
|
end
|
138
148
|
|
139
|
-
#
|
140
|
-
# *
|
141
|
-
# * If a record already exist: Updates the record with values matching those of the object attributes.
|
149
|
+
# * No record exists: Creates a new record with values matching those of the object attributes.
|
150
|
+
# * A record does exist: Updates the record with values matching those of the object attributes.
|
142
151
|
def save
|
143
152
|
create_or_update
|
144
153
|
end
|
@@ -149,7 +158,8 @@ module BigRecord
|
|
149
158
|
create_or_update || raise(RecordNotSaved)
|
150
159
|
end
|
151
160
|
|
152
|
-
# Deletes the record in the database
|
161
|
+
# Deletes the record in the database and freezes this instance to reflect that no changes should
|
162
|
+
# be made (since they can't be persisted).
|
153
163
|
def destroy
|
154
164
|
unless new_record?
|
155
165
|
connection.delete(self.class.table_name, self.id)
|
@@ -187,16 +197,6 @@ module BigRecord
|
|
187
197
|
|
188
198
|
protected
|
189
199
|
|
190
|
-
def set_loaded(name)
|
191
|
-
@loaded_columns ||= []
|
192
|
-
@loaded_columns << name
|
193
|
-
end
|
194
|
-
|
195
|
-
def is_loaded?(name)
|
196
|
-
@loaded_columns ||= []
|
197
|
-
@loaded_columns.include?(name)
|
198
|
-
end
|
199
|
-
|
200
200
|
# Invoke {#create} if {#new_record} returns true, otherwise it's an {#update}
|
201
201
|
def create_or_update
|
202
202
|
raise ReadOnlyRecord if readonly?
|
@@ -218,8 +218,8 @@ module BigRecord
|
|
218
218
|
update_bigrecord
|
219
219
|
end
|
220
220
|
|
221
|
-
# Update this record in
|
222
|
-
# therefore weird
|
221
|
+
# Update this record in hbase. Cannot be directly in the method 'update' because it would trigger callbacks and
|
222
|
+
# therefore weird behaviors.
|
223
223
|
def update_bigrecord
|
224
224
|
timestamp = self.respond_to?(:updated_at) ? self.updated_at.to_bigrecord_timestamp : Time.now.to_bigrecord_timestamp
|
225
225
|
|
@@ -229,7 +229,6 @@ module BigRecord
|
|
229
229
|
end
|
230
230
|
|
231
231
|
public
|
232
|
-
|
233
232
|
class << self
|
234
233
|
|
235
234
|
# Return the name of the primary key. Defaults to "id".
|
@@ -300,16 +299,6 @@ module BigRecord
|
|
300
299
|
end
|
301
300
|
end
|
302
301
|
|
303
|
-
# Returns all records for the model by invoking find(:all)
|
304
|
-
def all
|
305
|
-
find(:all)
|
306
|
-
end
|
307
|
-
|
308
|
-
# Returns the first record for the model by invoke find(:first)
|
309
|
-
def first
|
310
|
-
find(:first)
|
311
|
-
end
|
312
|
-
|
313
302
|
# Returns true if the given +id+ represents the primary key of a record in the database, false otherwise.
|
314
303
|
def exists?(id)
|
315
304
|
!find(id).nil?
|
@@ -398,16 +387,10 @@ module BigRecord
|
|
398
387
|
connection.truncate_table(table_name)
|
399
388
|
end
|
400
389
|
|
401
|
-
# Returns the inflected table name as it's called in your database.
|
402
390
|
def table_name
|
403
391
|
(superclass == BigRecord::Base) ? @table_name : superclass.table_name
|
404
392
|
end
|
405
393
|
|
406
|
-
# If you want to avoid the table name inflection, you can define the name
|
407
|
-
# explicitly with this method.
|
408
|
-
#
|
409
|
-
# @example
|
410
|
-
# set_table_name :table_xyz
|
411
394
|
def set_table_name(name)
|
412
395
|
@table_name = name.to_s
|
413
396
|
end
|
@@ -536,7 +519,6 @@ module BigRecord
|
|
536
519
|
end
|
537
520
|
|
538
521
|
protected
|
539
|
-
|
540
522
|
def invalidate_views
|
541
523
|
@views = nil
|
542
524
|
@view_names = nil
|
@@ -632,6 +614,16 @@ module BigRecord
|
|
632
614
|
end
|
633
615
|
end
|
634
616
|
|
617
|
+
def find_all_by_id(ids, options={})
|
618
|
+
ids.inject([]) do |result, id|
|
619
|
+
begin
|
620
|
+
result << find_one(id, options)
|
621
|
+
rescue BigRecord::RecordNotFound => e
|
622
|
+
end
|
623
|
+
result
|
624
|
+
end
|
625
|
+
end
|
626
|
+
|
635
627
|
# Add the missing cells to the raw record and set them to nil. We know that it's
|
636
628
|
# nil because else we would have received those cells. That way, when the value of
|
637
629
|
# one of these cells will be requested by the client we won't try to lazy load it.
|
@@ -7,7 +7,7 @@ module BigRecord
|
|
7
7
|
module ConnectionAdapters # :nodoc:
|
8
8
|
# All the concrete database adapters follow the interface laid down in this class.
|
9
9
|
# You can use this interface directly by borrowing the database connection from the Base with
|
10
|
-
#
|
10
|
+
# Base.connection.
|
11
11
|
#
|
12
12
|
# Most of the methods in the adapter are useful during migrations. Most
|
13
13
|
# notably, SchemaStatements#create_table, SchemaStatements#drop_table,
|
@@ -172,3 +172,19 @@ module BigRecord
|
|
172
172
|
end # class AbstractAdapter
|
173
173
|
end # module ConnectionAdapters
|
174
174
|
end # module BigRecord
|
175
|
+
|
176
|
+
|
177
|
+
# Open the time class to add logic for the hbase timestamp
|
178
|
+
class Time
|
179
|
+
# Return this time is the hbase timestamp format, i.e. a 'long'. The 4 high bytes contain
|
180
|
+
# the number of seconds since epoch and the 4 low bytes contain the microseconds. That
|
181
|
+
# format is an arbitrary one and could have been something else.
|
182
|
+
def to_bigrecord_timestamp
|
183
|
+
(self.to_i << 32) + self.usec
|
184
|
+
end
|
185
|
+
|
186
|
+
def self.from_bigrecord_timestamp(timestamp)
|
187
|
+
Time.at(timestamp >> 32, timestamp & 0xFFFFFFFF)
|
188
|
+
end
|
189
|
+
|
190
|
+
end
|
@@ -1,18 +1,4 @@
|
|
1
1
|
module BigRecord
|
2
|
-
|
3
|
-
# = Dynamic Schema
|
4
|
-
#
|
5
|
-
# The dynamic schema functionality of Bigrecord refers to the ability to
|
6
|
-
# modify the attributes of a model within the class itself, rather than being
|
7
|
-
# bounded by the database. This is an inherit property of using the BigTable
|
8
|
-
# database model, and Bigrecord leverages its use.
|
9
|
-
#
|
10
|
-
# New attributes defined will simply return nil for records that existed
|
11
|
-
# before their addition into the model, while attributes that are removed
|
12
|
-
# from the model will just be ignored when accessing existing records.
|
13
|
-
#
|
14
|
-
# Refer to {BigRecord::ConnectionAdapters::Column} for more information.
|
15
|
-
#
|
16
2
|
module DynamicSchema
|
17
3
|
|
18
4
|
def self.included(base) #:nodoc:
|
data/lib/big_record/timestamp.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module BigRecord
|
2
|
-
#
|
2
|
+
# Big Record automatically timestamps create and update if the table has fields
|
3
3
|
# created_at/created_on or updated_at/updated_on.
|
4
4
|
#
|
5
5
|
# Timestamping can be turned off by setting
|
@@ -15,7 +15,7 @@ module BigRecord
|
|
15
15
|
# end
|
16
16
|
#
|
17
17
|
# Timestamps are in the local timezone by default but can use UTC by setting
|
18
|
-
# <tt>
|
18
|
+
# <tt>ActiveRecord::Base.default_timezone = :utc</tt>
|
19
19
|
module Timestamp
|
20
20
|
def self.included(base) #:nodoc:
|
21
21
|
super
|
@@ -49,29 +49,3 @@ module BigRecord
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
53
|
-
# Open the Time class to add methods which convert the time into the Bigrecord
|
54
|
-
# timestamp format.
|
55
|
-
class Time
|
56
|
-
|
57
|
-
# Return the time in the Bigrecord timestamp format, i.e. a 'long' where the
|
58
|
-
# 4 high bytes contain the number of seconds since epoch and the 4 low bytes
|
59
|
-
# contain the microseconds.
|
60
|
-
#
|
61
|
-
# @example
|
62
|
-
# > Time.now.to_bigrecord_timestamp
|
63
|
-
# => 5410405886576175030
|
64
|
-
def to_bigrecord_timestamp
|
65
|
-
(self.to_i << 32) + self.usec
|
66
|
-
end
|
67
|
-
|
68
|
-
# Converts a timestamp in Bigrecord format into a regular Time object.
|
69
|
-
#
|
70
|
-
# @example
|
71
|
-
# > Time.from_bigrecord_timestamp(5410405886576175030)
|
72
|
-
# => Tue Dec 01 17:58:05 -0500 2009
|
73
|
-
def self.from_bigrecord_timestamp(timestamp)
|
74
|
-
Time.at(timestamp >> 32, timestamp & 0xFFFFFFFF)
|
75
|
-
end
|
76
|
-
|
77
|
-
end
|
data/lib/bigrecord.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require
|
1
|
+
require 'big_record'
|
data/spec/unit/find_spec.rb
CHANGED
@@ -29,16 +29,6 @@ describe BigRecord::Base do
|
|
29
29
|
Zoo.find(id).should == [zoo]
|
30
30
|
end
|
31
31
|
|
32
|
-
it "should be invoked when #all and #first are called" do
|
33
|
-
zoo = Zoo.new
|
34
|
-
|
35
|
-
Zoo.should_receive(:find).with(:all).and_return([zoo])
|
36
|
-
Zoo.all.should == [zoo]
|
37
|
-
|
38
|
-
Zoo.should_receive(:find).with(:first).and_return(zoo)
|
39
|
-
Zoo.first.should == zoo
|
40
|
-
end
|
41
|
-
|
42
32
|
end
|
43
33
|
|
44
34
|
end
|
data/spec/unit/scanner_spec.rb
CHANGED
@@ -5,10 +5,9 @@ describe BigRecord::Base do
|
|
5
5
|
before(:all) do
|
6
6
|
Book.delete_all
|
7
7
|
@titles = ["I Am Legend", "The Beach", "Neuromancer"]
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
@ids = [id1, id2, id3]
|
8
|
+
Book.create(:title => @titles[0], :author => "Richard Matheson")
|
9
|
+
Book.create(:title => @titles[1], :author => "Alex Garland")
|
10
|
+
Book.create(:title => @titles[2], :author => "William Gibson")
|
12
11
|
end
|
13
12
|
|
14
13
|
after(:all) do
|
@@ -20,13 +19,10 @@ describe BigRecord::Base do
|
|
20
19
|
it "should retrieve all records with find" do
|
21
20
|
books = Book.find(:all)
|
22
21
|
books.size.should == 3
|
22
|
+
book_titles = books.map(&:title)
|
23
23
|
|
24
24
|
@titles.each do |title|
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
@ids.each do |id|
|
29
|
-
books.map(&:id).should include(id)
|
25
|
+
book_titles.should include(title)
|
30
26
|
end
|
31
27
|
end
|
32
28
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bigrecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- openplaces.org
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-02 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -131,7 +131,6 @@ files:
|
|
131
131
|
- spec/connections/bigrecord.yml
|
132
132
|
- spec/connections/cassandra/connection.rb
|
133
133
|
- spec/connections/hbase/connection.rb
|
134
|
-
- spec/debug.log
|
135
134
|
- spec/integration/br_associations_spec.rb
|
136
135
|
- spec/lib/animal.rb
|
137
136
|
- spec/lib/book.rb
|
@@ -157,7 +156,6 @@ files:
|
|
157
156
|
- spec/unit/ar_associations_spec.rb
|
158
157
|
- spec/unit/attributes_spec.rb
|
159
158
|
- spec/unit/br_associations_spec.rb
|
160
|
-
- spec/unit/callback_spec.rb
|
161
159
|
- spec/unit/columns_spec.rb
|
162
160
|
- spec/unit/embedded_spec.rb
|
163
161
|
- spec/unit/find_spec.rb
|
data/spec/debug.log
DELETED
@@ -1,232 +0,0 @@
|
|
1
|
-
# Logfile created on Tue Dec 01 18:42:59 -0500 2009 by /
|
2
|
-
Connecting to Hbase data store ({"hbase"=>{"drb_host"=>"localhost", "zookeeper_quorum"=>"localhost", "drb_port"=>50001, "zookeeper_client_port"=>2181, "adapter"=>"hbase"}, "hbase_rest"=>{"adapter"=>"hbase_rest", "api_address"=>"http://localhost:8080"}, "cassandra"=>{"address"=>"localhost", "drb_host"=>"localhost", "drb_port"=>50002, "port"=>9160, "adapter"=>"cassandra"}})
|
3
|
-
[4;36;1mHBASE (0.006705)[0m [0;1mSCAN (attribute:) FROM animals WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
4
|
-
[4;35;1mHBASE (0.002881)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
5
|
-
[4;36;1mHBASE (0.003021)[0m [0;1mUPDATE zoos SET {"attr:name"=>"\001Some Zoo", "attr:address"=>"\001123 Address St.", "attr:readonly"=>"\000", "attr:employees"=>"\000", "attr:weblink"=>"\000", "attr:description"=>"\001This is Some Zoo located at 123 Address St.", "attr:animal_ids"=>"--- []\n\n"} WHERE ROW=c72f4ba7-9c71-4655-8665-32379e17ef49;[0m
|
6
|
-
[4;35;1mHBASE (0.001753)[0m [0mUPDATE animals SET {"attribute:zoo_id"=>"\001c72f4ba7-9c71-4655-8665-32379e17ef49", "attribute:book_ids"=>"--- []\n\n", "attribute:type"=>"--- 0\n", "attribute:description"=>"\000", "attribute:name"=>"\001Stampy"} WHERE ROW=13bca708-4493-4efa-a08a-50e4eb8894b7;[0m
|
7
|
-
[4;36;1mHBASE (0.001128)[0m [0;1mSELECT (attribute:zoo_id, attribute:book_ids, attribute:type, attribute:description, attribute:name) FROM animals WHERE ROW=13bca708-4493-4efa-a08a-50e4eb8894b7;[0m
|
8
|
-
[4;35;1mHBASE (0.002785)[0m [0mSELECT (attribute:zoo_id, attribute:book_ids, attribute:type, attribute:description, attribute:name) FROM animals WHERE ROW=13bca708-4493-4efa-a08a-50e4eb8894b7;[0m
|
9
|
-
[4;36;1mHBASE (0.001165)[0m [0;1mSELECT (attr:name, attr:address, attr:readonly, attr:employees, attr:weblink, attr:description, attr:animal_ids) FROM zoos WHERE ROW=c72f4ba7-9c71-4655-8665-32379e17ef49;[0m
|
10
|
-
[4;35;1mHBASE (0.001894)[0m [0mSCAN (attribute:) FROM animals WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
11
|
-
[4;36;1mHBASE (0.000945)[0m [0;1mDELETE FROM animals WHERE ROW=13bca708-4493-4efa-a08a-50e4eb8894b7;[0m
|
12
|
-
[4;35;1mHBASE (0.001822)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
13
|
-
[4;36;1mHBASE (0.000873)[0m [0;1mDELETE FROM zoos WHERE ROW=c72f4ba7-9c71-4655-8665-32379e17ef49;[0m
|
14
|
-
[4;35;1mHBASE (0.001578)[0m [0mSCAN (attribute:) FROM animals WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
15
|
-
[4;36;1mHBASE (0.001256)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
16
|
-
[4;35;1mHBASE (0.003739)[0m [0mUPDATE zoos SET {"attr:name"=>"\001Some Zoo", "attr:address"=>"\001123 Address St.", "attr:readonly"=>"\000", "attr:employees"=>"\000", "attr:weblink"=>"\000", "attr:description"=>"\001This is Some Zoo located at 123 Address St.", "attr:animal_ids"=>"--- []\n\n"} WHERE ROW=5687bb96-5eff-4a65-b6e6-29c007bbc87a;[0m
|
17
|
-
[4;36;1mHBASE (0.001763)[0m [0;1mUPDATE animals SET {"attribute:zoo_id"=>"\0015687bb96-5eff-4a65-b6e6-29c007bbc87a", "attribute:book_ids"=>"--- []\n\n", "attribute:type"=>"--- 0\n", "attribute:description"=>"\000", "attribute:name"=>"\001Stampy"} WHERE ROW=c8dd7675-b9ab-4741-9b9a-4464abc45213;[0m
|
18
|
-
[4;35;1mHBASE (0.001654)[0m [0mUPDATE animals SET {"attribute:zoo_id"=>"\0015687bb96-5eff-4a65-b6e6-29c007bbc87a", "attribute:book_ids"=>"--- []\n\n", "attribute:type"=>"--- 0\n", "attribute:description"=>"\000", "attribute:name"=>"\001Dumbo"} WHERE ROW=3a910158-941a-4c9e-9817-b31c5586978d;[0m
|
19
|
-
[4;36;1mHBASE (0.002022)[0m [0;1mUPDATE zoos SET {"attr:name"=>"\001Some Zoo", "attr:address"=>"\001123 Address St.", "attr:readonly"=>"\000", "attr:employees"=>"\000", "attr:weblink"=>"\000", "attr:description"=>"\001This is Some Zoo located at 123 Address St.", "attr:animal_ids"=>"--- \n- c8dd7675-b9ab-4741-9b9a-4464abc45213\n- 3a910158-941a-4c9e-9817-b31c5586978d\n"} WHERE ROW=5687bb96-5eff-4a65-b6e6-29c007bbc87a;[0m
|
20
|
-
[4;35;1mHBASE (0.001131)[0m [0mSELECT (attr:name, attr:address, attr:readonly, attr:employees, attr:weblink, attr:description, attr:animal_ids) FROM zoos WHERE ROW=5687bb96-5eff-4a65-b6e6-29c007bbc87a;[0m
|
21
|
-
[4;36;1mHBASE (0.001042)[0m [0;1mSELECT (attr:name, attr:address, attr:readonly, attr:employees, attr:weblink, attr:description, attr:animal_ids) FROM zoos WHERE ROW=5687bb96-5eff-4a65-b6e6-29c007bbc87a;[0m
|
22
|
-
[4;35;1mHBASE (0.001074)[0m [0mSELECT (attribute:zoo_id, attribute:book_ids, attribute:type, attribute:description, attribute:name) FROM animals WHERE ROW=c8dd7675-b9ab-4741-9b9a-4464abc45213;[0m
|
23
|
-
[4;36;1mHBASE (0.000969)[0m [0;1mSELECT (attribute:zoo_id, attribute:book_ids, attribute:type, attribute:description, attribute:name) FROM animals WHERE ROW=3a910158-941a-4c9e-9817-b31c5586978d;[0m
|
24
|
-
[4;35;1mHBASE (0.002399)[0m [0mSCAN (attribute:) FROM animals WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
25
|
-
[4;36;1mHBASE (0.000879)[0m [0;1mDELETE FROM animals WHERE ROW=3a910158-941a-4c9e-9817-b31c5586978d;[0m
|
26
|
-
[4;35;1mHBASE (0.000694)[0m [0mDELETE FROM animals WHERE ROW=c8dd7675-b9ab-4741-9b9a-4464abc45213;[0m
|
27
|
-
[4;36;1mHBASE (0.001729)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
28
|
-
[4;35;1mHBASE (0.000834)[0m [0mDELETE FROM zoos WHERE ROW=5687bb96-5eff-4a65-b6e6-29c007bbc87a;[0m
|
29
|
-
Migrating to AddAnimalsTable (20090706182535)
|
30
|
-
Migrating to AddBooksTable (20090706190623)
|
31
|
-
Migrating to AddCompaniesTable (20090706193019)
|
32
|
-
Migrating to AddEmployeesTable (20090706194512)
|
33
|
-
Migrating to AddZoosTable (20090706195741)
|
34
|
-
Migrating to AddAnimalsTable (20090706182535)
|
35
|
-
Migrating to AddAnimalsTable (20090706182535)
|
36
|
-
[4;36;1mHBASE (0.005164)[0m [0;1mSCAN (attribute:) FROM animals WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
37
|
-
[4;35;1mHBASE (0.002597)[0m [0mSCAN (attribute:) FROM employees WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
38
|
-
[4;36;1mHBASE (0.002756)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
39
|
-
[4;35;1mHBASE (0.002202)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
40
|
-
[4;36;1mHBASE (0.004104)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
41
|
-
[4;35;1mHBASE (0.002625)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
42
|
-
[4;36;1mHBASE (0.001323)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
43
|
-
[4;35;1mHBASE (0.001937)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
44
|
-
[4;36;1mHBASE (0.001096)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
45
|
-
[4;35;1mHBASE (0.001217)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
46
|
-
[4;36;1mHBASE (0.001280)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
47
|
-
[4;35;1mHBASE (0.001266)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
48
|
-
[4;36;1mHBASE (0.001914)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
49
|
-
[4;35;1mHBASE (0.001134)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
50
|
-
[4;36;1mHBASE (0.003971)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
51
|
-
[4;35;1mHBASE (0.002225)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
52
|
-
[4;36;1mHBASE (0.002752)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
53
|
-
[4;35;1mHBASE (0.001547)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
54
|
-
[4;36;1mHBASE (0.001295)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
55
|
-
[4;35;1mHBASE (0.001257)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
56
|
-
[4;36;1mHBASE (0.001751)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
57
|
-
[4;35;1mHBASE (0.001042)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
58
|
-
[4;36;1mHBASE (0.001206)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
59
|
-
[4;35;1mHBASE (0.001959)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
60
|
-
[4;36;1mHBASE (0.001055)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
61
|
-
[4;35;1mHBASE (0.001181)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
62
|
-
[4;36;1mHBASE (0.001327)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
63
|
-
[4;35;1mHBASE (0.001286)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
64
|
-
[4;36;1mHBASE (0.001774)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
65
|
-
[4;35;1mHBASE (0.001038)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
66
|
-
[4;36;1mHBASE (0.001177)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
67
|
-
WARNING: Can't mass-assign these protected attributes: employees
|
68
|
-
WARNING: Can't mass-assign these protected attributes: employees
|
69
|
-
[4;35;1mHBASE (0.001992)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
70
|
-
[4;36;1mHBASE (0.001123)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
71
|
-
[4;35;1mHBASE (0.002007)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
72
|
-
[4;36;1mHBASE (0.001432)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
73
|
-
[4;35;1mHBASE (0.001249)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
74
|
-
[4;36;1mHBASE (0.001730)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
75
|
-
[4;35;1mHBASE (0.001007)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
76
|
-
[4;36;1mHBASE (0.001166)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
77
|
-
WARNING: Can't mass-assign these protected attributes: readonly, employees
|
78
|
-
WARNING: Can't mass-assign these protected attributes: employees
|
79
|
-
[4;35;1mHBASE (0.002038)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
80
|
-
[4;36;1mHBASE (0.001144)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
81
|
-
[4;35;1mHBASE (0.001234)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
82
|
-
[4;36;1mHBASE (0.001213)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
83
|
-
[4;35;1mHBASE (0.001245)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
84
|
-
[4;36;1mHBASE (0.001754)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
85
|
-
[4;35;1mHBASE (0.001021)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
86
|
-
[4;36;1mHBASE (0.001161)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
87
|
-
[4;35;1mHBASE (0.001904)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
88
|
-
[4;36;1mHBASE (0.001104)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
89
|
-
[4;35;1mHBASE (0.001276)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
90
|
-
[4;36;1mHBASE (0.002049)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
91
|
-
[4;35;1mHBASE (0.001406)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
92
|
-
[4;36;1mHBASE (0.001799)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
93
|
-
[4;35;1mHBASE (0.001026)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
94
|
-
[4;36;1mHBASE (0.001179)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
95
|
-
WARNING: Can't mass-assign these protected attributes: name
|
96
|
-
[4;35;1mHBASE (0.002127)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
97
|
-
[4;36;1mHBASE (0.001071)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
98
|
-
[4;35;1mHBASE (0.001214)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
99
|
-
[4;36;1mHBASE (0.001221)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
100
|
-
[4;35;1mHBASE (0.001250)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
101
|
-
[4;36;1mHBASE (0.001773)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
102
|
-
[4;35;1mHBASE (0.001009)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
103
|
-
[4;36;1mHBASE (0.002783)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
104
|
-
[4;35;1mHBASE (0.002132)[0m [0mUPDATE zoos SET {"attr:name"=>"\001African Lion Safari", "attr:address"=>"\001RR #1 Cambridge, Ontario Canada\nN1R 5S2", "attr:readonly"=>"\000", "attr:employees"=>"\000", "attr:weblink"=>"--- \ntitle: African Lion Safari - Wikipedia\nurl: http://en.wikipedia.org/wiki/African_Lion_Safari\nid: 31e9d53d-576a-4d3d-b106-d14ca66507e2\n", "attr:description"=>"\001Canada's Original Safari Adventure", "attr:animal_ids"=>"--- []\n\n"} WHERE ROW=2ca9d093-8ace-4cda-9b60-b991b2e4a57e;[0m
|
105
|
-
[4;36;1mHBASE (0.002455)[0m [0;1mSELECT (attr:name, attr:address, attr:readonly, attr:employees, attr:weblink, attr:description, attr:animal_ids) FROM zoos WHERE ROW=2ca9d093-8ace-4cda-9b60-b991b2e4a57e;[0m
|
106
|
-
[4;35;1mHBASE (0.002049)[0m [0mUPDATE zoos SET {"attr:name"=>"\001African Lion Safari", "attr:address"=>"\001RR #1 Cambridge, Ontario Canada\nN1R 5S2", "attr:readonly"=>"\000", "attr:employees"=>"\000", "attr:weblink"=>"--- \ntitle: African Lion Safari\nurl: http://www.lionsafari.com/\nid: 93cab2ac-7e05-4642-9c83-1c1f6b3fd8e7\n", "attr:description"=>"\001Canada's Original Safari Adventure", "attr:animal_ids"=>"--- []\n\n"} WHERE ROW=2ca9d093-8ace-4cda-9b60-b991b2e4a57e;[0m
|
107
|
-
[4;36;1mHBASE (0.001335)[0m [0;1mSELECT (attr:name, attr:address, attr:readonly, attr:employees, attr:weblink, attr:description, attr:animal_ids) FROM zoos WHERE ROW=2ca9d093-8ace-4cda-9b60-b991b2e4a57e;[0m
|
108
|
-
[4;35;1mHBASE (0.002115)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
109
|
-
[4;36;1mHBASE (0.001088)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
110
|
-
[4;35;1mHBASE (0.001661)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
111
|
-
[4;36;1mHBASE (0.000830)[0m [0;1mDELETE FROM zoos WHERE ROW=2ca9d093-8ace-4cda-9b60-b991b2e4a57e;[0m
|
112
|
-
[4;35;1mHBASE (0.001308)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
113
|
-
[4;36;1mHBASE (0.001811)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
114
|
-
[4;35;1mHBASE (0.001017)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
115
|
-
[4;36;1mHBASE (0.001286)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
116
|
-
[4;35;1mHBASE (0.001820)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
117
|
-
[4;36;1mHBASE (0.001031)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
118
|
-
[4;35;1mHBASE (0.001203)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
119
|
-
[4;36;1mHBASE (0.001800)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
120
|
-
[4;35;1mHBASE (0.000994)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
121
|
-
[4;36;1mHBASE (0.002455)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
122
|
-
[4;35;1mHBASE (0.002062)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
123
|
-
[4;36;1mHBASE (0.001093)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
124
|
-
[4;35;1mHBASE (0.001229)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
125
|
-
[4;36;1mHBASE (0.001841)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
126
|
-
[4;35;1mHBASE (0.000991)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
127
|
-
[4;36;1mHBASE (0.001182)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
128
|
-
[4;35;1mHBASE (0.001906)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
129
|
-
[4;36;1mHBASE (0.001091)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
130
|
-
[4;35;1mHBASE (0.001218)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
131
|
-
[4;36;1mHBASE (0.001813)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
132
|
-
[4;35;1mHBASE (0.001031)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
133
|
-
[4;36;1mHBASE (0.001181)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
134
|
-
WARNING: Can't mass-assign these protected attributes: employees
|
135
|
-
WARNING: Can't mass-assign these protected attributes: employees
|
136
|
-
[4;35;1mHBASE (0.001971)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
137
|
-
[4;36;1mHBASE (0.001084)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
138
|
-
[4;35;1mHBASE (0.001187)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
139
|
-
[4;36;1mHBASE (0.002831)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
140
|
-
[4;35;1mHBASE (0.001135)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
141
|
-
[4;36;1mHBASE (0.001227)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
142
|
-
WARNING: Can't mass-assign these protected attributes: readonly, employees
|
143
|
-
WARNING: Can't mass-assign these protected attributes: employees
|
144
|
-
[4;35;1mHBASE (0.001976)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
145
|
-
[4;36;1mHBASE (0.001047)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
146
|
-
[4;35;1mHBASE (0.001241)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
147
|
-
[4;36;1mHBASE (0.001789)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
148
|
-
[4;35;1mHBASE (0.001110)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
149
|
-
[4;36;1mHBASE (0.001258)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
150
|
-
[4;35;1mHBASE (0.002300)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
151
|
-
[4;36;1mHBASE (0.002634)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
152
|
-
[4;35;1mHBASE (0.003699)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
153
|
-
[4;36;1mHBASE (0.002018)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
154
|
-
[4;35;1mHBASE (0.001066)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
155
|
-
[4;36;1mHBASE (0.002484)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
156
|
-
WARNING: Can't mass-assign these protected attributes: name
|
157
|
-
[4;35;1mHBASE (0.002158)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
158
|
-
[4;36;1mHBASE (0.001136)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
159
|
-
[4;35;1mHBASE (0.001229)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
160
|
-
[4;36;1mHBASE (0.001769)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
161
|
-
[4;35;1mHBASE (0.000993)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
162
|
-
[4;36;1mHBASE (0.001216)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
163
|
-
[4;35;1mHBASE (0.002008)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
164
|
-
[4;36;1mHBASE (0.001097)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
165
|
-
[4;35;1mHBASE (0.001203)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
166
|
-
[4;36;1mHBASE (0.001764)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
167
|
-
[4;35;1mHBASE (0.001047)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
168
|
-
[4;36;1mHBASE (0.001197)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
169
|
-
[4;35;1mHBASE (0.002182)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
170
|
-
[4;36;1mHBASE (0.001180)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
171
|
-
[4;35;1mHBASE (0.001239)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
172
|
-
[4;36;1mHBASE (0.001802)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
173
|
-
[4;35;1mHBASE (0.001047)[0m [0mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
174
|
-
[4;36;1mHBASE (0.001175)[0m [0;1mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
175
|
-
[4;35;1mHBASE (0.001875)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
176
|
-
[4;36;1mHBASE (0.001055)[0m [0;1mSCAN (attribute:) FROM companies WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
177
|
-
[4;35;1mHBASE (0.001205)[0m [0mSCAN (attr:) FROM zoos WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
178
|
-
[4;36;1mHBASE (0.001740)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
179
|
-
[4;35;1mHBASE (0.001845)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
180
|
-
[4;36;1mHBASE (0.001764)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
181
|
-
[4;35;1mHBASE (0.001672)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\000", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=004f8743-7237-44f9-bd2a-14214b2e7591;[0m
|
182
|
-
[4;36;1mHBASE (0.001154)[0m [0;1mSELECT (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE ROW=004f8743-7237-44f9-bd2a-14214b2e7591;[0m
|
183
|
-
[4;35;1mHBASE (0.002579)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
184
|
-
[4;36;1mHBASE (0.000926)[0m [0;1mDELETE FROM books WHERE ROW=004f8743-7237-44f9-bd2a-14214b2e7591;[0m
|
185
|
-
[4;35;1mHBASE (0.001913)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
186
|
-
[4;36;1mHBASE (0.001586)[0m [0;1mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=dd2c12d9-61db-43cd-815c-495bb8450e9b;[0m
|
187
|
-
[4;35;1mHBASE (0.001228)[0m [0mSELECT (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE ROW=dd2c12d9-61db-43cd-815c-495bb8450e9b;[0m
|
188
|
-
[4;36;1mHBASE (0.000960)[0m [0;1mDELETE FROM books WHERE ROW=dd2c12d9-61db-43cd-815c-495bb8450e9b;[0m
|
189
|
-
[4;35;1mHBASE (0.000888)[0m [0mSELECT (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE ROW=dd2c12d9-61db-43cd-815c-495bb8450e9b;[0m
|
190
|
-
[4;36;1mHBASE (0.002046)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
191
|
-
[4;35;1mHBASE (0.001827)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
192
|
-
[4;36;1mHBASE (0.001586)[0m [0;1mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=c864b364-8d0d-45d6-bc4f-fb33b4d68ce4;[0m
|
193
|
-
[4;35;1mHBASE (0.001103)[0m [0mSELECT (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE ROW=c864b364-8d0d-45d6-bc4f-fb33b4d68ce4;[0m
|
194
|
-
[4;36;1mHBASE (0.001492)[0m [0;1mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001One of the Ten All-Time Best Novels of Vampirism.", "attribute:title"=>"\001I Am Legend", "attribute:links"=>"--- []\n\n", "attribute:author"=>"\001Richard Matheson"} WHERE ROW=c864b364-8d0d-45d6-bc4f-fb33b4d68ce4;[0m
|
195
|
-
[4;35;1mHBASE (0.001379)[0m [0mSELECT (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE ROW=c864b364-8d0d-45d6-bc4f-fb33b4d68ce4;[0m
|
196
|
-
[4;36;1mHBASE (0.004924)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
197
|
-
[4;35;1mHBASE (0.001127)[0m [0mDELETE FROM books WHERE ROW=c864b364-8d0d-45d6-bc4f-fb33b4d68ce4;[0m
|
198
|
-
[4;36;1mHBASE (0.002827)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
199
|
-
[4;35;1mHBASE (0.002067)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
200
|
-
[4;36;1mHBASE (0.001933)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
201
|
-
[4;35;1mHBASE (0.004246)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=081ad946-c8c0-40b6-9452-5b4156df31e7;[0m
|
202
|
-
[4;36;1mHBASE (0.004064)[0m [0;1mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=45d641c9-7045-43cb-88dd-3964b2446440;[0m
|
203
|
-
[4;35;1mHBASE (0.001785)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001One of the Ten All-Time Best Novels of Vampirism.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=45d641c9-7045-43cb-88dd-3964b2446440;[0m
|
204
|
-
[4;36;1mHBASE (0.001398)[0m [0;1mSELECT (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE ROW=45d641c9-7045-43cb-88dd-3964b2446440;[0m
|
205
|
-
[4;35;1mHBASE (0.005032)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=b6ca21e6-d66b-4de7-bcbd-c54098e683e7;[0m
|
206
|
-
[4;36;1mHBASE (0.003372)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
207
|
-
[4;35;1mHBASE (0.001348)[0m [0mDELETE FROM books WHERE ROW=081ad946-c8c0-40b6-9452-5b4156df31e7;[0m
|
208
|
-
[4;36;1mHBASE (0.003556)[0m [0;1mDELETE FROM books WHERE ROW=45d641c9-7045-43cb-88dd-3964b2446440;[0m
|
209
|
-
[4;35;1mHBASE (0.001021)[0m [0mDELETE FROM books WHERE ROW=b6ca21e6-d66b-4de7-bcbd-c54098e683e7;[0m
|
210
|
-
[4;36;1mHBASE (0.001990)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
211
|
-
[4;35;1mHBASE (0.001664)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=a3cffcc4-977a-4216-adb6-d2b26326fccf;[0m
|
212
|
-
[4;36;1mHBASE (0.003125)[0m [0;1mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001One of the most important writers of the twentieth century.", "attribute:title"=>"\001A Stir of Echoes", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=a3cffcc4-977a-4216-adb6-d2b26326fccf;[0m
|
213
|
-
[4;35;1mHBASE (0.001644)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=f8c690c7-7a6a-4f16-9d75-52ac16200fa8;[0m
|
214
|
-
[4;36;1mHBASE (0.001557)[0m [0;1mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=6e2ad9c8-8a39-4397-bcfd-7abe4c97fe24;[0m
|
215
|
-
[4;35;1mHBASE (0.001716)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001One of the most important writers of the twentieth century.", "attribute:title"=>"\001A Stir of Echoes", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=6e2ad9c8-8a39-4397-bcfd-7abe4c97fe24;[0m
|
216
|
-
[4;36;1mHBASE (0.001543)[0m [0;1mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\001The most clever and riveting vampire novel since Dracula.", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=8a6dea21-8ae6-40e9-8d3c-7eea53a17bc1;[0m
|
217
|
-
[4;35;1mHBASE (0.003266)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
218
|
-
[4;36;1mHBASE (0.000956)[0m [0;1mDELETE FROM books WHERE ROW=6e2ad9c8-8a39-4397-bcfd-7abe4c97fe24;[0m
|
219
|
-
[4;35;1mHBASE (0.000790)[0m [0mDELETE FROM books WHERE ROW=8a6dea21-8ae6-40e9-8d3c-7eea53a17bc1;[0m
|
220
|
-
[4;36;1mHBASE (0.000739)[0m [0;1mDELETE FROM books WHERE ROW=a3cffcc4-977a-4216-adb6-d2b26326fccf;[0m
|
221
|
-
[4;35;1mHBASE (0.000717)[0m [0mDELETE FROM books WHERE ROW=f8c690c7-7a6a-4f16-9d75-52ac16200fa8;[0m
|
222
|
-
[4;36;1mHBASE (0.001923)[0m [0;1mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
223
|
-
[4;35;1mHBASE (0.001804)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\000", "attribute:title"=>"\001I Am Legend", "attribute:author"=>"\001Richard Matheson", "attribute:links"=>"--- []\n\n"} WHERE ROW=720c13d1-7eb1-4395-8695-b96a0aa92211;[0m
|
224
|
-
[4;36;1mHBASE (0.001713)[0m [0;1mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\000", "attribute:title"=>"\001The Beach", "attribute:author"=>"\001Alex Garland", "attribute:links"=>"--- []\n\n"} WHERE ROW=e8a2b3ef-c201-43a9-be7a-6125792c3b20;[0m
|
225
|
-
[4;35;1mHBASE (0.001673)[0m [0mUPDATE books SET {"log:change"=>"--- []\n\n", "attribute:description"=>"\000", "attribute:title"=>"\001Neuromancer", "attribute:author"=>"\001William Gibson", "attribute:links"=>"--- []\n\n"} WHERE ROW=67835777-39cb-4aa7-98fc-899377f16277;[0m
|
226
|
-
[4;36;1mHBASE (0.004712)[0m [0;1mSCAN (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
227
|
-
[4;35;1mHBASE (0.004874)[0m [0mSCAN (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=101;[0m
|
228
|
-
[4;36;1mHBASE (0.001980)[0m [0;1mSCAN (family2:, log:change, attribute:description, attribute:title, attribute:author, attribute:links) FROM books WHERE START_ROW=e8a2b3ef-c201-43a9-be7a-6125792c3b20 AND STOP_ROW= LIMIT=101;[0m
|
229
|
-
[4;35;1mHBASE (0.002804)[0m [0mSCAN (attribute:) FROM books WHERE START_ROW= AND STOP_ROW= LIMIT=;[0m
|
230
|
-
[4;36;1mHBASE (0.000847)[0m [0;1mDELETE FROM books WHERE ROW=67835777-39cb-4aa7-98fc-899377f16277;[0m
|
231
|
-
[4;35;1mHBASE (0.000991)[0m [0mDELETE FROM books WHERE ROW=720c13d1-7eb1-4395-8695-b96a0aa92211;[0m
|
232
|
-
[4;36;1mHBASE (0.000921)[0m [0;1mDELETE FROM books WHERE ROW=e8a2b3ef-c201-43a9-be7a-6125792c3b20;[0m
|
data/spec/unit/callback_spec.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|