activerecord-jdbc-adapter 1.0.0.beta1-java → 1.0.0.beta2-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/History.txt +37 -0
  2. data/Manifest.txt +8 -0
  3. data/README.txt +41 -88
  4. data/lib/active_record/connection_adapters/mysql2_adapter.rb +1 -0
  5. data/lib/arel/engines/sql/compilers/hsqldb_compiler.rb +9 -0
  6. data/lib/arel/engines/sql/compilers/mssql_compiler.rb +34 -0
  7. data/lib/arjdbc/db2/adapter.rb +232 -52
  8. data/lib/arjdbc/derby/adapter.rb +28 -1
  9. data/lib/arjdbc/derby/connection_methods.rb +1 -1
  10. data/lib/arjdbc/discover.rb +1 -1
  11. data/lib/arjdbc/firebird/adapter.rb +26 -0
  12. data/lib/arjdbc/h2/adapter.rb +13 -0
  13. data/lib/arjdbc/hsqldb/adapter.rb +8 -6
  14. data/lib/arjdbc/informix/adapter.rb +4 -0
  15. data/lib/arjdbc/jdbc/adapter.rb +27 -5
  16. data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
  17. data/lib/arjdbc/jdbc/connection.rb +76 -45
  18. data/lib/arjdbc/jdbc/jdbc.rake +22 -20
  19. data/lib/arjdbc/jdbc/type_converter.rb +9 -2
  20. data/lib/arjdbc/mssql/adapter.rb +102 -24
  21. data/lib/arjdbc/mssql/connection_methods.rb +19 -2
  22. data/lib/arjdbc/mssql/tsql_helper.rb +1 -0
  23. data/lib/arjdbc/mysql/adapter.rb +6 -0
  24. data/lib/arjdbc/mysql/connection_methods.rb +8 -7
  25. data/lib/arjdbc/oracle/adapter.rb +8 -6
  26. data/lib/arjdbc/postgresql/adapter.rb +51 -19
  27. data/lib/arjdbc/version.rb +1 -1
  28. data/lib/jdbc_adapter/rake_tasks.rb +3 -0
  29. data/rails_generators/templates/lib/tasks/jdbc.rake +2 -2
  30. data/rakelib/package.rake +2 -0
  31. data/rakelib/test.rake +6 -3
  32. data/src/java/arjdbc/derby/DerbyModule.java +30 -1
  33. data/src/java/arjdbc/informix/InformixRubyJdbcConnection.java +74 -0
  34. data/src/java/arjdbc/jdbc/AdapterJavaService.java +7 -3
  35. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +45 -30
  36. data/src/java/arjdbc/mssql/MssqlRubyJdbcConnection.java +54 -1
  37. data/src/java/arjdbc/oracle/OracleRubyJdbcConnection.java +85 -0
  38. data/test/abstract_db_create.rb +6 -1
  39. data/test/db/jndi_config.rb +20 -10
  40. data/test/db2_simple_test.rb +34 -1
  41. data/test/derby_simple_test.rb +78 -0
  42. data/test/generic_jdbc_connection_test.rb +21 -1
  43. data/test/jndi_callbacks_test.rb +2 -1
  44. data/test/jndi_test.rb +1 -11
  45. data/test/models/entry.rb +20 -0
  46. data/test/mssql_limit_offset_test.rb +28 -0
  47. data/test/mssql_simple_test.rb +7 -1
  48. data/test/mysql_info_test.rb +49 -6
  49. data/test/mysql_simple_test.rb +4 -0
  50. data/test/oracle_simple_test.rb +3 -47
  51. data/test/oracle_specific_test.rb +83 -0
  52. data/test/postgres_db_create_test.rb +6 -0
  53. data/test/postgres_drop_db_test.rb +16 -0
  54. data/test/postgres_simple_test.rb +17 -0
  55. data/test/postgres_table_alias_length_test.rb +15 -0
  56. data/test/simple.rb +17 -4
  57. metadata +33 -7
@@ -1,27 +1,33 @@
1
1
  require 'jdbc_common'
2
2
  require 'db/mysql'
3
+ begin; require 'active_support/core_ext/numeric/bytes'; rescue LoadError; end
3
4
 
4
5
  class DBSetup < ActiveRecord::Migration
5
-
6
+
6
7
  def self.up
7
8
  create_table :books do |t|
8
9
  t.string :title
10
+ t.timestamps
9
11
  end
10
-
12
+
11
13
  create_table :cars, :primary_key => 'legacy_id' do |t|
12
14
  t.string :name
13
15
  end
14
-
16
+
15
17
  create_table :cats, :id => false do |t|
16
18
  t.string :name
17
19
  end
18
-
20
+
21
+ create_table :memos do |t|
22
+ t.text :text, :limit => 16.megabytes
23
+ end
19
24
  end
20
25
 
21
26
  def self.down
22
27
  drop_table :books
23
28
  drop_table :cars
24
29
  drop_table :cats
30
+ drop_table :memos
25
31
  end
26
32
 
27
33
  end
@@ -41,7 +47,7 @@ class MysqlInfoTest < Test::Unit::TestCase
41
47
  def test_should_return_the_primary_key_of_a_table
42
48
  assert_equal 'id', @connection.primary_key('books')
43
49
  end
44
-
50
+
45
51
  def test_should_be_able_to_return_a_custom_primary_key
46
52
  assert_equal 'legacy_id', @connection.primary_key('cars')
47
53
  end
@@ -49,7 +55,7 @@ class MysqlInfoTest < Test::Unit::TestCase
49
55
  def test_should_return_nil_for_a_table_without_a_primary_key
50
56
  assert_nil @connection.primary_key('cats')
51
57
  end
52
-
58
+
53
59
  ## structure_dump
54
60
  def test_should_include_the_tables_in_a_structure_dump
55
61
  # TODO: Improve these tests, I added this one because no other tests exists for this method.
@@ -57,6 +63,43 @@ class MysqlInfoTest < Test::Unit::TestCase
57
63
  assert dump.include?('CREATE TABLE `books`')
58
64
  assert dump.include?('CREATE TABLE `cars`')
59
65
  assert dump.include?('CREATE TABLE `cats`')
66
+ assert dump.include?('CREATE TABLE `memos`')
67
+ end
68
+
69
+ def test_should_include_longtext_in_schema_dump
70
+ strio = StringIO.new
71
+ ActiveRecord::SchemaDumper::dump(@connection, strio)
72
+ dump = strio.string
73
+ assert_match %r{t.text\s+"text",\s+:limit => 2147483647$}, dump
60
74
  end
61
75
 
76
+ # JRUBY-5040
77
+ def test_schema_dump_should_not_have_limits_on_datetime
78
+ strio = StringIO.new
79
+ ActiveRecord::SchemaDumper::dump(@connection, strio)
80
+ dump = strio.string
81
+ dump.grep(/datetime/).each {|line| assert line !~ /limit/ }
82
+ end
83
+
84
+ def test_should_include_limit
85
+ text_column = @connection.columns('memos').find { |c| c.name == 'text' }
86
+ assert_equal 2147483647, text_column.limit
87
+ end
88
+
89
+ def test_should_set_sqltype_to_longtext
90
+ text_column = @connection.columns('memos').find { |c| c.name == 'text' }
91
+ assert text_column.sql_type =~ /^longtext/
92
+ end
93
+
94
+ def test_should_set_type_to_text
95
+ text_column = @connection.columns('memos').find { |c| c.name == 'text' }
96
+ assert_equal :text, text_column.type
97
+ end
98
+
99
+ def test_verify_url_has_options
100
+ url = @connection.config[:url]
101
+ assert url =~ /characterEncoding=utf8/
102
+ assert url =~ /useUnicode=true/
103
+ assert url =~ /zeroDateTimeBehavior=convertToNull/
104
+ end
62
105
  end
@@ -25,6 +25,10 @@ class MysqlSimpleTest < Test::Unit::TestCase
25
25
  s = "weblog_development.posts"
26
26
  assert_equal "`weblog_development`.`posts`", ActiveRecord::Base.connection.quote_table_name(s)
27
27
  end
28
+
29
+ def test_update_all_with_limit
30
+ assert_nothing_raised { Entry.update_all({:title => "test"}, {}, {:limit => 1}) }
31
+ end
28
32
  end
29
33
 
30
34
  class MysqlHasManyThroughTest < Test::Unit::TestCase
@@ -3,52 +3,8 @@ require 'db/oracle'
3
3
 
4
4
  class OracleSimpleTest < Test::Unit::TestCase
5
5
  include SimpleTestMethods
6
- end
7
-
8
- class OracleSpecificTest < Test::Unit::TestCase
9
- include MultibyteTestMethods # so we can get @java_con
10
-
11
- def setup
12
- super
13
- @java_con.createStatement.execute "CREATE TABLE DEFAULT_NUMBER (VALUE NUMBER, DATUM DATE)"
14
- @java_con.createStatement.execute "INSERT INTO DEFAULT_NUMBER (VALUE, DATUM) VALUES (0.076, TIMESTAMP'2009-11-05 00:00:00')"
15
- @java_con.createStatement.execute "CREATE SYNONYM POSTS FOR ENTRIES"
16
- @klass = Class.new(ActiveRecord::Base)
17
- @klass.set_table_name "DEFAULT_NUMBER"
18
- end
19
-
20
- def teardown
21
- @java_con.createStatement.execute "DROP TABLE DEFAULT_NUMBER"
22
- @java_con.createStatement.execute "DROP SYNONYM POSTS"
23
- super
24
- end
25
-
26
- def test_default_number_precision
27
- obj = @klass.find(:first)
28
- assert_equal 0.076, obj.value
29
- end
30
-
31
- # JRUBY-3675, ACTIVERECORD_JDBC-22
32
- def test_load_date
33
- obj = @klass.find(:first)
34
- assert_not_nil obj.datum, "no date"
35
- end
36
6
 
37
- def test_load_null_date
38
- @java_con.createStatement.execute "UPDATE DEFAULT_NUMBER SET DATUM = NULL"
39
- obj = @klass.find(:first)
40
- assert obj.datum.nil?
7
+ def test_default_id_type_is_integer
8
+ assert Integer === Entry.first.id
41
9
  end
42
-
43
- def test_model_access_by_synonym
44
- @klass.set_table_name "POSTS"
45
- entry_columns = Entry.columns_hash
46
- @klass.columns.each do |c|
47
- ec = entry_columns[c.name]
48
- assert ec
49
- assert_equal ec.sql_type, c.sql_type
50
- assert_equal ec.type, c.type
51
- end
52
- end
53
-
54
- end if defined?(JRUBY_VERSION)
10
+ end
@@ -0,0 +1,83 @@
1
+ require 'jdbc_common'
2
+ require 'db/oracle'
3
+
4
+ class DefaultNumber < ActiveRecord::Base
5
+ end
6
+
7
+ class OracleSpecificTest < Test::Unit::TestCase
8
+ include MultibyteTestMethods # so we can get @java_con
9
+
10
+ def setup
11
+ super
12
+ @java_con.createStatement.execute "
13
+ CREATE TABLE DEFAULT_NUMBERS (
14
+ ID INTEGER NOT NULL PRIMARY KEY, VALUE NUMBER, DATUM DATE, FPOINT NUMBER(10,2), VALUE2 NUMBER(15)
15
+ )"
16
+ @java_con.createStatement.execute "
17
+ INSERT INTO DEFAULT_NUMBERS (ID, VALUE, DATUM, FPOINT, VALUE2)
18
+ VALUES (1, 0.076, TIMESTAMP'2009-11-05 00:00:00', 1000.01, 1234)"
19
+ @java_con.createStatement.execute "CREATE SYNONYM POSTS FOR ENTRIES"
20
+ end
21
+
22
+ def teardown
23
+ @java_con.createStatement.execute "DROP TABLE DEFAULT_NUMBERS"
24
+ @java_con.createStatement.execute "DROP SYNONYM POSTS"
25
+ super
26
+ end
27
+
28
+ def test_default_number_precision
29
+ assert_equal 0.076, DefaultNumber.find(:first).value
30
+ end
31
+
32
+ def test_number_with_precision_and_scale
33
+ assert_equal 1000.01, DefaultNumber.find(:first).fpoint
34
+ end
35
+
36
+ def test_number_with_precision
37
+ assert_equal 1234, DefaultNumber.find(:first).value2
38
+ end
39
+
40
+ def test_number_type_with_precision_and_scale_is_reported_correctly
41
+ assert_equal 'NUMBER', DefaultNumber.columns_hash['value'].sql_type
42
+ assert_equal 'NUMBER(10,2)', DefaultNumber.columns_hash['fpoint'].sql_type
43
+ assert_equal 'NUMBER(15)', DefaultNumber.columns_hash['value2'].sql_type
44
+ end
45
+
46
+ # JRUBY-3675, ACTIVERECORD_JDBC-22
47
+ def test_load_date
48
+ obj = DefaultNumber.find(:first)
49
+ assert_not_nil obj.datum, "no date"
50
+ end
51
+
52
+ # ACTIVERECORD_JDBC-127
53
+ def test_save_date
54
+ obj = DefaultNumber.find(:first)
55
+ obj.datum = '01Jan2010'
56
+ obj.save!
57
+ end
58
+
59
+ def test_save_timestamp
60
+ obj = DefaultNumber.find(:first)
61
+ obj.datum = Time.now
62
+ obj.save!
63
+ end
64
+
65
+ def test_load_null_date
66
+ @java_con.createStatement.execute "UPDATE DEFAULT_NUMBERS SET DATUM = NULL"
67
+ obj = DefaultNumber.find(:first)
68
+ assert obj.datum.nil?
69
+ end
70
+
71
+ def test_model_access_by_synonym
72
+ @klass = Class.new(ActiveRecord::Base)
73
+ @klass.set_table_name "POSTS"
74
+ entry_columns = Entry.columns_hash
75
+ @klass.columns.each do |c|
76
+ ec = entry_columns[c.name]
77
+ assert ec
78
+ assert_equal ec.sql_type, c.sql_type
79
+ assert_equal ec.type, c.type
80
+ end
81
+ end
82
+
83
+ end if defined?(JRUBY_VERSION)
@@ -18,4 +18,10 @@ class PostgresDbCreateTest < Test::Unit::TestCase
18
18
  def test_skipped
19
19
  end
20
20
  end
21
+
22
+ def test_rake_db_create_does_not_load_full_environment
23
+ Rake::Task["db:create"].invoke
24
+ assert @rails_env_set
25
+ assert !@full_environment_loaded
26
+ end
21
27
  end
@@ -0,0 +1,16 @@
1
+ require 'abstract_db_create'
2
+ require 'db/postgres'
3
+
4
+ class PostgresDbDropTest < Test::Unit::TestCase
5
+ include AbstractDbCreate
6
+
7
+ def db_config
8
+ POSTGRES_CONFIG
9
+ end
10
+
11
+ def test_dropping_nonexistent_database_does_not_raise_exception
12
+ assert_nothing_raised do
13
+ Rake::Task["db:drop"].invoke
14
+ end
15
+ end
16
+ end
@@ -11,3 +11,20 @@ class PostgresSimpleTest < Test::Unit::TestCase
11
11
  include SimpleTestMethods
12
12
  include ActiveRecord3TestMethods
13
13
  end
14
+
15
+ class PostgresDeserializationTest < Test::Unit::TestCase
16
+ def setup
17
+ DbTypeMigration.up
18
+ end
19
+
20
+ def teardown
21
+ DbTypeMigration.down
22
+ end
23
+
24
+ def test_should_keep_float_precision
25
+ expected = DbType.create(:sample_float => 7.3)
26
+ actual = DbType.find(expected.id)
27
+
28
+ assert_equal expected.sample_float, actual.sample_float
29
+ end
30
+ end
@@ -0,0 +1,15 @@
1
+ require 'jdbc_common'
2
+ require 'db/postgres'
3
+
4
+ class PostgresTableAliasLengthTest < Test::Unit::TestCase
5
+ def test_table_alias_length
6
+ result = ActiveRecord::Base.connection.select_one("SELECT 1 AS " + "a" * 2048)
7
+
8
+ actual_table_alias_length = result.keys.first.size
9
+ actual_table_alias_length = 0 if actual_table_alias_length == 2048
10
+
11
+ assert_equal(actual_table_alias_length,
12
+ ActiveRecord::Base.connection.table_alias_length)
13
+ end
14
+ end
15
+
data/test/simple.rb CHANGED
@@ -10,6 +10,7 @@ module MigrationSetup
10
10
  DbTypeMigration.up
11
11
  CreateStringIds.up
12
12
  CreateEntries.up
13
+ CreateUsers.up
13
14
  CreateAutoIds.up
14
15
  CreateValidatesUniquenessOf.up
15
16
 
@@ -20,6 +21,7 @@ module MigrationSetup
20
21
  DbTypeMigration.down
21
22
  CreateStringIds.down
22
23
  CreateEntries.down
24
+ CreateUsers.down
23
25
  CreateAutoIds.down
24
26
  CreateValidatesUniquenessOf.down
25
27
  ActiveRecord::Base.clear_active_connections!
@@ -34,7 +36,8 @@ module FixtureSetup
34
36
  @content = "Hello from JRuby on Rails!"
35
37
  @new_title = "First post updated title"
36
38
  @rating = 205.76
37
- @entry = Entry.create :title => @title, :content => @content, :rating => @rating
39
+ @user = User.create :login=>"something"
40
+ @entry = Entry.create :title => @title, :content => @content, :rating => @rating, :user=>@user
38
41
  DbType.create
39
42
  end
40
43
  end
@@ -46,6 +49,10 @@ module SimpleTestMethods
46
49
  assert ActiveRecord::Base.connection.tables.find{|t| t =~ /^entries$/i}, "entries not created"
47
50
  end
48
51
 
52
+ def test_users_created
53
+ assert ActiveRecord::Base.connection.tables.find{|t| t =~ /^users$/i}, "users not created"
54
+ end
55
+
49
56
  def test_entries_empty
50
57
  Entry.delete_all
51
58
  assert_equal 0, Entry.count
@@ -274,6 +281,15 @@ module SimpleTestMethods
274
281
  assert_nil AutoId.find(test.id).value
275
282
  end
276
283
 
284
+ # These should make no difference, but might due to the wacky regexp SQL rewriting we do.
285
+ def test_save_value_containing_sql
286
+ e = DbType.first
287
+ e.save
288
+
289
+ e.sample_string = e.sample_text = "\n\nselect from nothing where id = 'foo'"
290
+ e.save
291
+ end
292
+
277
293
  def test_invalid
278
294
  e = Entry.new(:title => @title, :content => @content, :rating => ' ')
279
295
  assert e.valid?
@@ -324,9 +340,6 @@ module SimpleTestMethods
324
340
  end
325
341
 
326
342
  def test_validates_uniqueness_of_strings_case_sensitive
327
- # In MySQL and MsSQL, string cmps are case-insensitive by default, so skip this test
328
- return if ActiveRecord::Base.connection.config[:adapter] =~ /m[sy]sql/
329
-
330
343
  name_lower = ValidatesUniquenessOfString.new(:cs_string => "name", :ci_string => '1')
331
344
  name_lower.save!
332
345
 
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 1
7
7
  - 0
8
8
  - 0
9
- - beta1
10
- version: 1.0.0.beta1
9
+ - beta2
10
+ version: 1.0.0.beta2
11
11
  platform: java
12
12
  authors:
13
13
  - Nick Sieger, Ola Bini and JRuby contributors
@@ -15,11 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-20 00:00:00 -05:00
18
+ date: 2010-09-25 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: hoe
22
+ name: rubyforge
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
@@ -28,11 +28,26 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  segments:
30
30
  - 2
31
- - 3
32
- - 3
33
- version: 2.3.3
31
+ - 0
32
+ - 4
33
+ version: 2.0.4
34
34
  type: :development
35
35
  version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: hoe
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ segments:
45
+ - 2
46
+ - 6
47
+ - 1
48
+ version: 2.6.1
49
+ type: :development
50
+ version_requirements: *id002
36
51
  description: |-
37
52
  activerecord-jdbc-adapter is a database adapter for Rails' ActiveRecord
38
53
  component that can be used with JRuby[http://www.jruby.org/]. It allows use of
@@ -65,6 +80,7 @@ files:
65
80
  - lib/active_record/connection_adapters/jdbc_adapter.rb
66
81
  - lib/active_record/connection_adapters/jndi_adapter.rb
67
82
  - lib/active_record/connection_adapters/mssql_adapter.rb
83
+ - lib/active_record/connection_adapters/mysql2_adapter.rb
68
84
  - lib/active_record/connection_adapters/mysql_adapter.rb
69
85
  - lib/active_record/connection_adapters/oracle_adapter.rb
70
86
  - lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -74,6 +90,7 @@ files:
74
90
  - lib/arel/engines/sql/compilers/h2_compiler.rb
75
91
  - lib/arel/engines/sql/compilers/hsqldb_compiler.rb
76
92
  - lib/arel/engines/sql/compilers/jdbc_compiler.rb
93
+ - lib/arel/engines/sql/compilers/mssql_compiler.rb
77
94
  - lib/arjdbc/cachedb.rb
78
95
  - lib/arjdbc/db2.rb
79
96
  - lib/arjdbc/derby.rb
@@ -134,6 +151,7 @@ files:
134
151
  - lib/arjdbc/sqlite3/connection_methods.rb
135
152
  - lib/arjdbc/sybase/adapter.rb
136
153
  - lib/generators/jdbc/jdbc_generator.rb
154
+ - lib/jdbc_adapter/rake_tasks.rb
137
155
  - lib/jdbc_adapter/version.rb
138
156
  - lib/arjdbc/jdbc/adapter_java.jar
139
157
  - test/abstract_db_create.rb
@@ -164,13 +182,16 @@ files:
164
182
  - test/mysql_nonstandard_primary_key_test.rb
165
183
  - test/mysql_simple_test.rb
166
184
  - test/oracle_simple_test.rb
185
+ - test/oracle_specific_test.rb
167
186
  - test/pick_rails_version.rb
168
187
  - test/postgres_db_create_test.rb
188
+ - test/postgres_drop_db_test.rb
169
189
  - test/postgres_mixed_case_test.rb
170
190
  - test/postgres_nonseq_pkey_test.rb
171
191
  - test/postgres_reserved_test.rb
172
192
  - test/postgres_schema_search_path_test.rb
173
193
  - test/postgres_simple_test.rb
194
+ - test/postgres_table_alias_length_test.rb
174
195
  - test/simple.rb
175
196
  - test/sqlite3_simple_test.rb
176
197
  - test/sybase_jtds_simple_test.rb
@@ -200,12 +221,14 @@ files:
200
221
  - test/models/validates_uniqueness_of_string.rb
201
222
  - lib/arjdbc/jdbc/jdbc.rake
202
223
  - src/java/arjdbc/derby/DerbyModule.java
224
+ - src/java/arjdbc/informix/InformixRubyJdbcConnection.java
203
225
  - src/java/arjdbc/jdbc/AdapterJavaService.java
204
226
  - src/java/arjdbc/jdbc/JdbcConnectionFactory.java
205
227
  - src/java/arjdbc/jdbc/RubyJdbcConnection.java
206
228
  - src/java/arjdbc/jdbc/SQLBlock.java
207
229
  - src/java/arjdbc/mssql/MssqlRubyJdbcConnection.java
208
230
  - src/java/arjdbc/mysql/MySQLModule.java
231
+ - src/java/arjdbc/oracle/OracleRubyJdbcConnection.java
209
232
  - src/java/arjdbc/postgresql/PostgresqlRubyJdbcConnection.java
210
233
  - src/java/arjdbc/sqlite3/Sqlite3RubyJdbcConnection.java
211
234
  - rakelib/compile.rake
@@ -223,6 +246,9 @@ post_install_message:
223
246
  rdoc_options:
224
247
  - --main
225
248
  - README.txt
249
+ - -SHN
250
+ - -f
251
+ - darkfish
226
252
  require_paths:
227
253
  - lib
228
254
  required_ruby_version: !ruby/object:Gem::Requirement