thingfish 0.7.0 → 0.8.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9a0df5e14498c987d01ba054873bcfad3e98c364
4
- data.tar.gz: b63b33e9f59288acc5d9759a082d13ccfde6b8b0
2
+ SHA256:
3
+ metadata.gz: 767d737d3f8a3ca3cae2d7f5b01fa7e7b1967127585efe3201b55fce50a46500
4
+ data.tar.gz: 769440ac44975755940720e4cd95a610c072874e3c5a1f709bcf3e7cf6cabf39
5
5
  SHA512:
6
- metadata.gz: 217f66c0d72e2f644516b6e2b35967a61f519c7c848849d6b3a721721628415e50c95ef9630aba0dde4a9afbd789a52aa16ba4252387f18b872f7246e080b373
7
- data.tar.gz: a68b9ffaa68472217321e300962486cb8ad72cd0658f995e7158e5e6c36d3622f700fadc226d15b1152c7160174efe8ec657e5ba9ea2cd045bfa7354b562c983
6
+ metadata.gz: a83f80a9b4efa7c7e651f2fd1791e4424fa2bd63d6b304b4cc622cfcfc1fd2840ffd1fee370722cc4399453ac662efffc2591e51e054acb33e8e72e776d7a30c
7
+ data.tar.gz: d6244bb6e4b2c340f977f12ed0f19631bbdd6a10815973c44880c0ebbc8c841b6296744f7cb331ed71a776e26c2d7f24cac136b510afe1eceebe0eb110ff822c
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -0,0 +1,48 @@
1
+ # Release History for thingfish
2
+
3
+ ---
4
+
5
+ ## v0.8.0 [2021-01-02] Michael Granger <ged@FaerieMUD.org>
6
+
7
+ Improvements:
8
+
9
+ - Several bugfixes
10
+ - Support for newer Rubies
11
+
12
+
13
+ ## v0.7.0 [2017-09-13] Michael Granger <ged@FaerieMUD.org>
14
+
15
+ Improvements:
16
+
17
+ - Explicitly set the HTTP status when returning resources.
18
+ - Add Last-Modified/If-None-Match support.
19
+ - Move the configure() method to help support deferred configuration.
20
+
21
+
22
+ ## v0.6.0 [2017-01-16] Mahlon E. Smith <mahlon@martini.nu>
23
+
24
+ Housekeeping:
25
+
26
+ - Bump Configurability dependency.
27
+ - Migrate away from .rvmrc.
28
+
29
+
30
+ ## v0.5.1 [2016-11-14] Michael Granger <ged@FaerieMUD.org>
31
+
32
+ Enhancements:
33
+
34
+ - Add support for Strelka app discovery.
35
+
36
+ Bugfixes:
37
+
38
+ - Remove the processor daemon for now
39
+ - Documentation fixes
40
+
41
+
42
+ ## v0.5.0 [2016-11-14] Michael Granger <ged@FaerieMUD.org>
43
+
44
+ First public release.
45
+
46
+
47
+
48
+
@@ -1,8 +1,16 @@
1
- = Thingfish
1
+ # Thingfish
2
2
 
3
- * https://thing.fish
3
+ home
4
+ : https://thing.fish
4
5
 
5
- == Description
6
+ code
7
+ : https://hg.sr.ht/~ged/thingfish
8
+
9
+ docs
10
+ : https://thing.fish/docs/
11
+
12
+
13
+ ## Description
6
14
 
7
15
  Thingfish is a extensible, web-based digital asset manager. It can be used to
8
16
  store chunks of data on the network in an application-independent way, link the
@@ -10,42 +18,31 @@ chunks together with metadata, and then search for the chunk you need later and
10
18
  fetch it, all through a REST API.
11
19
 
12
20
 
13
- == Authors
14
-
15
- * Michael Granger <ged@FaerieMUD.org>
16
- * Mahlon E. Smith <mahlon@martini.nu>
17
-
18
- == Contributors
19
-
20
- * Jeremiah Jordan <phaedrus@perlreason.com>
21
- * Ben Bleything <ben@bleything.net>
22
- * Jeff Davis <jeff-thingfish@j-davis.com>
21
+ ## Requirements
23
22
 
23
+ Thingfish is written in ruby, and is tested using [version 2.7](http://www.ruby-lang.org/en/downloads/). Other versions may work,
24
+ but are not tested.
24
25
 
25
- == Installation
26
26
 
27
- === Requirements
27
+ ## Installation
28
28
 
29
- Thingfish is written in ruby, and is tested using {version 2.3}[http://www.ruby-lang.org/en/downloads/]. Other versions may work,
30
- but are not tested.
29
+ You can install Thingfish via Rubygems:
31
30
 
32
- === Ruby Modules
31
+ $ gem install thingfish
33
32
 
34
- You can install Thingfish via the Rubygems package manager:
33
+ This will install the basic server and its dependencies. Additional functionality is available via separate gems in the following namespaces:
35
34
 
36
- $ gem install thingfish
35
+ `thingfish-metastore-*`
36
+ : Storage backends for resource metadata
37
37
 
38
- This will install the basic server and its dependencies. Additional functionality is available via separate gems in the following namespaces:
38
+ `thingfish-filestore-*`
39
+ : Storage backends for resources themselves
39
40
 
40
- [thingfish-metastore-*]
41
- Storage backends for resource metadata
42
- [thingfish-filestore-*]
43
- Storage backends for resources themselves
44
- [thingfish-processor-*]
45
- Filters and extractors for resources
41
+ `thingfish-processor-*`
42
+ : Filters and extractors for resources
46
43
 
47
44
 
48
- == Contributing
45
+ ## Contributing
49
46
 
50
47
  You can check out the current development source
51
48
  {with Mercurial}[http://bitbucket.org/ged/thingfish], or
@@ -63,9 +60,22 @@ You can submit bug reports, suggestions, and read more about future plans at
63
60
  {the project page}[http://bitbucket.org/ged/thingfish].
64
61
 
65
62
 
66
- == License
63
+ ## Authors
64
+
65
+ * Michael Granger <ged@FaerieMUD.org>
66
+ * Mahlon E. Smith <mahlon@martini.nu>
67
+
68
+
69
+ ## Contributors
70
+
71
+ * Jeremiah Jordan <phaedrus@perlreason.com>
72
+ * Ben Bleything <ben@bleything.net>
73
+ * Jeff Davis <jeff-thingfish@j-davis.com>
74
+
75
+
76
+ ## License
67
77
 
68
- Copyright (c) 2007-2016, Michael Granger and Mahlon E. Smith
78
+ Copyright (c) 2007-2020, Michael Granger and Mahlon E. Smith
69
79
  All rights reserved.
70
80
 
71
81
  Redistribution and use in source and binary forms, with or without
data/Rakefile CHANGED
@@ -1,90 +1,8 @@
1
- #!/usr/bin/env rake
2
- #encoding: utf-8
1
+ #!/usr/bin/env ruby -S rake
3
2
 
4
- begin
5
- require 'hoe'
6
- rescue LoadError
7
- abort "This Rakefile requires hoe (gem install hoe)"
8
- end
9
-
10
- GEMSPEC = 'thingfish.gemspec'
11
-
12
-
13
- Hoe.plugin :mercurial
14
- Hoe.plugin :signing
15
- Hoe.plugin :deveiate
16
-
17
- Hoe.plugins.delete :rubyforge
18
-
19
- hoespec = Hoe.spec 'thingfish' do
20
- self.readme_file = 'README.rdoc'
21
- self.history_file = 'History.rdoc'
22
- self.extra_rdoc_files = Rake::FileList[ '*.rdoc' ]
23
- self.license 'BSD-3-Clause'
24
-
25
- self.developer 'Michael Granger', 'ged@FaerieMUD.org'
26
- self.developer 'Mahlon E. Smith', 'mahlon@martini.nu'
27
- self.license "BSD"
28
-
29
- self.dependency 'strelka', '~> 0.14'
30
-
31
- self.dependency 'hoe-deveiate', '~> 0.3', :development
32
- self.dependency 'simplecov', '~> 0.7', :development
33
-
34
- self.require_ruby_version( '>=2.0.0' )
35
-
36
- self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
37
- spec.check_history_on_release = true if spec.respond_to?( :check_history_on_release= )
38
-
39
- self.rdoc_locations << "deveiate:/usr/local/thingfish/api"
40
- end
41
-
42
- ENV['VERSION'] ||= hoespec.spec.version.to_s
43
-
44
- # Run the tests before checking in
45
- task 'hg:precheckin' => [ :check_history, :check_manifest, :gemspec, :spec ]
46
-
47
- task :test => :spec
48
-
49
- # Rebuild the ChangeLog immediately before release
50
- task :prerelease => 'ChangeLog'
51
- CLOBBER.include( 'ChangeLog' )
52
-
53
- desc "Build a coverage report"
54
- task :coverage do
55
- ENV["COVERAGE"] = 'yes'
56
- Rake::Task[:spec].invoke
57
- end
58
- CLOBBER.include( 'coverage' )
59
-
60
-
61
- # Use the fivefish formatter for docs generated from development checkout
62
- if File.directory?( '.hg' )
63
- require 'rdoc/task'
3
+ require 'rake/deveiate'
64
4
 
65
- Rake::Task[ 'docs' ].clear
66
- RDoc::Task.new( 'docs' ) do |rdoc|
67
- rdoc.main = "README.rdoc"
68
- rdoc.markup = 'markdown'
69
- rdoc.rdoc_files.include( "*.rdoc", "ChangeLog", "lib/**/*.rb" )
70
- rdoc.generator = :sixfish
71
- rdoc.title = 'Thingfish'
72
- rdoc.rdoc_dir = 'doc'
73
- end
5
+ Rake::DevEiate.setup( 'thingfish' ) do |project|
6
+ project.publish_to = 'deveiate:/usr/local/www/public/code'
74
7
  end
75
8
 
76
- task :gemspec => GEMSPEC
77
- file GEMSPEC => __FILE__
78
- task GEMSPEC do |task|
79
- spec = $hoespec.spec
80
- spec.files.delete( '.gemtest' )
81
- spec.signing_key = nil
82
- spec.cert_chain = Dir.glob( 'certs/*.pem' )
83
- spec.version = "#{spec.version.bump}.0.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
84
- File.open( task.name, 'w' ) do |fh|
85
- fh.write( spec.to_ruby )
86
- end
87
- end
88
-
89
- CLOBBER.include( GEMSPEC.to_s )
90
-
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'strelka'
5
5
  require 'thingfish/handler'
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'strelka'
5
5
  require 'strelka/plugins'
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'strelka/discovery'
5
5
 
@@ -1,6 +1,6 @@
1
1
  # -*- ruby -*-
2
2
  # vim: set nosta noet ts=4 sw=4:
3
- # encoding: utf-8
3
+ # frozen_string_literal: true
4
4
 
5
5
  require 'strelka/constants'
6
6
  require 'strelka/httprequest' unless defined?( Strelka::HTTPRequest )
@@ -12,10 +12,10 @@ module Thingfish
12
12
 
13
13
 
14
14
  # Package version
15
- VERSION = '0.7.0'
15
+ VERSION = '0.8.0'
16
16
 
17
17
  # Version control revision
18
- REVISION = %q$Revision: c8bfee4b3f80 $
18
+ REVISION = %q$Revision$
19
19
 
20
20
 
21
21
  ### Get the library version. If +include_buildnum+ is true, the version string will
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'rspec'
5
5
 
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'securerandom'
5
5
  require 'pluggability'
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'thingfish' unless defined?( Thingfish )
5
5
  require 'thingfish/datastore' unless defined?( Thingfish::Datastore )
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'strelka'
5
5
  require 'strelka/app'
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'pluggability'
5
5
  require 'strelka'
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'thingfish' unless defined?( Thingfish )
5
5
  require 'thingfish/metastore' unless defined?( Thingfish::Metastore )
@@ -1,6 +1,6 @@
1
1
  # -*- ruby -*-
2
2
  # vim: set nosta noet ts=4 sw=4:
3
- # encoding: utf-8
3
+ # frozen_string_literal: true
4
4
 
5
5
  require 'securerandom'
6
6
 
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'pluggability'
5
5
  require 'strelka/httprequest/acceptparams'
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'digest/sha2'
5
5
 
@@ -37,7 +37,7 @@ class Thingfish::Processor::SHA256 < Thingfish::Processor
37
37
  ### Given an +io+, return a sha256 checksum of it's contents.
38
38
  def checksum( io )
39
39
  digest = Digest::SHA256.new
40
- buf = ''
40
+ buf = String.new
41
41
 
42
42
  while io.read( CHUNK_SIZE, buf )
43
43
  digest.update( buf )
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
  # vim: set nosta noet ts=4 sw=4 ft=ruby:
4
4
 
5
5
  require 'time'
@@ -42,25 +42,32 @@ Loggability.format_with( :color ) if $stdout.tty?
42
42
 
43
43
 
44
44
  ### Mock with RSpec
45
- RSpec.configure do |c|
45
+ RSpec.configure do |config|
46
46
  include Strelka::Constants
47
47
  include Thingfish::SpecHelpers
48
48
  include Thingfish::SpecHelpers::Constants
49
49
 
50
- c.run_all_when_everything_filtered = true
51
- c.filter_run :focus
52
- c.order = 'random'
53
- c.mock_with( :rspec ) do |mock|
50
+ config.mock_with( :rspec ) do |mock|
54
51
  mock.syntax = :expect
55
52
  end
56
53
 
57
- c.include( Loggability::SpecHelpers )
58
- c.include( Mongrel2::SpecHelpers )
59
- c.include( Mongrel2::Constants )
60
- c.include( Mongrel2::Config::DSL )
61
- c.include( Strelka::Constants )
62
- c.include( Strelka::Testing )
63
- c.include( Thingfish::SpecHelpers )
54
+ config.disable_monkey_patching!
55
+ config.example_status_persistence_file_path = "spec/.status"
56
+ config.filter_run :focus
57
+ config.filter_run_when_matching :focus
58
+ config.order = :random
59
+ config.profile_examples = 5
60
+ config.run_all_when_everything_filtered = true
61
+ config.shared_context_metadata_behavior = :apply_to_host_groups
62
+ # config.warnings = true
63
+
64
+ config.include( Loggability::SpecHelpers )
65
+ config.include( Mongrel2::SpecHelpers )
66
+ config.include( Mongrel2::Constants )
67
+ config.include( Mongrel2::Config::DSL )
68
+ config.include( Strelka::Constants )
69
+ config.include( Strelka::Testing )
70
+ config.include( Thingfish::SpecHelpers )
64
71
  end
65
72
 
66
73
  # vim: set nosta noet ts=4 sw=4:
@@ -7,7 +7,7 @@ require 'thingfish/datastore'
7
7
  require 'thingfish/behaviors'
8
8
 
9
9
 
10
- describe Thingfish::Datastore, "memory" do
10
+ RSpec.describe Thingfish::Datastore, "memory" do
11
11
 
12
12
  let( :store ) { Thingfish::Datastore.create(:memory) }
13
13