namaste 0.1.0 → 0.2.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.
- data/.gitignore +43 -0
- data/Gemfile +1 -14
- data/LICENSE.txt +10 -17
- data/{README.rdoc → README.textile} +1 -1
- data/Rakefile +29 -33
- data/bin/namaste +0 -0
- data/lib/namaste.rb +51 -25
- data/lib/namaste/version.rb +3 -0
- data/namaste.gemspec +36 -0
- data/spec/lib/namaste_spec.rb +125 -0
- data/spec/spec_helper.rb +3 -0
- metadata +71 -43
- data/Gemfile.lock +0 -22
- data/VERSION +0 -1
- data/test/helper.rb +0 -18
- data/test/test_namaste.rb +0 -35
data/.gitignore
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# rcov generated
|
2
|
+
coverage
|
3
|
+
|
4
|
+
# rdoc generated
|
5
|
+
rdoc
|
6
|
+
|
7
|
+
# yard generated
|
8
|
+
doc
|
9
|
+
.yardoc
|
10
|
+
|
11
|
+
# bundler
|
12
|
+
.bundle
|
13
|
+
|
14
|
+
# jeweler generated
|
15
|
+
pkg
|
16
|
+
|
17
|
+
Gemfile.lock
|
18
|
+
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
19
|
+
#
|
20
|
+
# * Create a file at ~/.gitignore
|
21
|
+
# * Include files you want ignored
|
22
|
+
# * Run: git config --global core.excludesfile ~/.gitignore
|
23
|
+
#
|
24
|
+
# After doing this, these files will be ignored in all your git projects,
|
25
|
+
# saving you from having to 'pollute' every project you touch with them
|
26
|
+
#
|
27
|
+
# Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
|
28
|
+
#
|
29
|
+
# For MacOS:
|
30
|
+
#
|
31
|
+
#.DS_Store
|
32
|
+
#
|
33
|
+
# For TextMate
|
34
|
+
#*.tmproj
|
35
|
+
#tmtags
|
36
|
+
#
|
37
|
+
# For emacs:
|
38
|
+
#*~
|
39
|
+
#\#*
|
40
|
+
#.\#*
|
41
|
+
#
|
42
|
+
# For vim:
|
43
|
+
#*.swp
|
data/Gemfile
CHANGED
@@ -1,15 +1,2 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
|
-
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
|
-
|
6
|
-
gem "i18n"
|
7
|
-
|
8
|
-
# Add dependencies to develop your gem here.
|
9
|
-
# Include everything needed to run rake, tests, features, etc.
|
10
|
-
group :development do
|
11
|
-
gem "shoulda", ">= 0"
|
12
|
-
gem "bundler", "~> 1.0.0"
|
13
|
-
gem "jeweler", "~> 1.5.1"
|
14
|
-
gem "rcov", ">= 0"
|
15
|
-
end
|
2
|
+
gemspec
|
data/LICENSE.txt
CHANGED
@@ -1,20 +1,13 @@
|
|
1
|
-
Copyright (c)
|
1
|
+
Copyright (c) 2011 Chris Beer
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
you may not use this file except in compliance with the License.
|
5
|
+
You may obtain a copy of the License at
|
10
6
|
|
11
|
-
|
12
|
-
included in all copies or substantial portions of the Software.
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
13
8
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
See the License for the specific language governing permissions and
|
13
|
+
limitations under the License.
|
data/Rakefile
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
require 'rake'
|
1
2
|
require 'rubygems'
|
2
3
|
require 'bundler'
|
4
|
+
require 'rspec/core/rake_task'
|
3
5
|
begin
|
4
6
|
Bundler.setup(:default, :development)
|
5
7
|
rescue Bundler::BundlerError => e
|
@@ -7,41 +9,35 @@ rescue Bundler::BundlerError => e
|
|
7
9
|
$stderr.puts "Run `bundle install` to install missing gems"
|
8
10
|
exit e.status_code
|
9
11
|
end
|
10
|
-
require 'rake'
|
11
|
-
|
12
|
-
require 'jeweler'
|
13
|
-
Jeweler::Tasks.new do |gem|
|
14
|
-
gem.name = "namaste"
|
15
|
-
gem.homepage = "http://github.com/cbeer/namaste"
|
16
|
-
gem.license = "MIT"
|
17
|
-
gem.summary = "A ruby client implementation of the Namaste specification for directory description with filename-based tags."
|
18
|
-
gem.email = "chris@cbeer.info"
|
19
|
-
gem.authors = ["Chris Beer"]
|
20
|
-
end
|
21
|
-
Jeweler::RubygemsDotOrgTasks.new
|
22
12
|
|
23
|
-
|
24
|
-
Rake::TestTask.new(:test) do |test|
|
25
|
-
test.libs << 'lib' << 'test'
|
26
|
-
test.pattern = 'test/**/test_*.rb'
|
27
|
-
test.verbose = true
|
28
|
-
end
|
29
|
-
|
30
|
-
require 'rcov/rcovtask'
|
31
|
-
Rcov::RcovTask.new do |test|
|
32
|
-
test.libs << 'test'
|
33
|
-
test.pattern = 'test/**/test_*.rb'
|
34
|
-
test.verbose = true
|
35
|
-
end
|
13
|
+
Bundler::GemHelper.install_tasks
|
36
14
|
|
37
|
-
|
15
|
+
namespace :namaste do
|
16
|
+
RSpec::Core::RakeTask.new(:rspec) do |t|
|
17
|
+
t.pattern = "./spec/**/*_spec.rb"
|
18
|
+
t.rcov = true
|
19
|
+
t.rcov_opts = ["--exclude", "gems\/,spec\/"]
|
20
|
+
end
|
38
21
|
|
39
|
-
|
40
|
-
|
41
|
-
|
22
|
+
# Use yard to build docs
|
23
|
+
begin
|
24
|
+
require 'yard'
|
25
|
+
require 'yard/rake/yardoc_task'
|
26
|
+
project_root = File.expand_path("#{File.dirname(__FILE__)}")
|
27
|
+
doc_destination = File.join(project_root, 'doc')
|
42
28
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
29
|
+
YARD::Rake::YardocTask.new(:doc) do |yt|
|
30
|
+
yt.files = Dir.glob(File.join(project_root, 'lib', '**', '*.rb')) +
|
31
|
+
[ File.join(project_root, 'README.textile') ]
|
32
|
+
yt.options = ['--output-dir', doc_destination, '--readme', 'README.textile']
|
33
|
+
end
|
34
|
+
rescue LoadError
|
35
|
+
desc "Generate YARD Documentation"
|
36
|
+
task :doc do
|
37
|
+
abort "Please install the YARD gem to generate rdoc."
|
38
|
+
end
|
39
|
+
end
|
47
40
|
end
|
41
|
+
|
42
|
+
desc "Run the rspec tests, aggregate coverage data, and build the Yard docs"
|
43
|
+
task :hudson => ["namaste:rspec","namaste:doc"]
|
data/bin/namaste
CHANGED
File without changes
|
data/lib/namaste.rb
CHANGED
@@ -1,34 +1,71 @@
|
|
1
1
|
require 'i18n'
|
2
|
+
# The Namaste module conains a Mixin module to include into a class.
|
3
|
+
|
4
|
+
# class MyNamaste
|
5
|
+
# include Namaste::Mixin
|
6
|
+
# end
|
7
|
+
# MyNamaste.new
|
8
|
+
# MyNamaste.who = "John Doe"
|
9
|
+
# MyNamaste.what = "John's Manifesto"
|
10
|
+
|
2
11
|
module Namaste
|
12
|
+
# @return [Hash] of Namaste mappings for integer and type value
|
3
13
|
DUBLIN_KERNEL = { :type => 0, :who => 1, :what => 2, :when => 3, :where => 4 }
|
14
|
+
|
15
|
+
# @return [Hash] of regular expressions matching the Namaste::DUBLIN_KERNAL Hash
|
4
16
|
PATTERN = Hash[*Namaste::DUBLIN_KERNEL.map { |k, v| [k, Regexp.new("^#{v}=.*")]}.flatten]
|
17
|
+
|
18
|
+
# @return [Regexp] of standard Namaste file name pattern
|
5
19
|
PATTERN_CORE = /^\d=.*/
|
20
|
+
|
21
|
+
# @return [Regexp] of the possible exteneded Namaste file name pattern
|
6
22
|
PATTERN_EXTENDED = /=.*/
|
23
|
+
|
7
24
|
module Mixin
|
25
|
+
# When this Mixin module is included this will define getters and setters on your class for each of the keys in Namaste::DUBLIN_KERNAL.
|
8
26
|
def self.included base
|
9
27
|
Namaste::DUBLIN_KERNEL.each do |k,v|
|
10
28
|
base.class_eval do
|
11
|
-
|
29
|
+
define_method(k.to_s) do |*args|
|
12
30
|
namaste(:filter => k)
|
13
|
-
|
31
|
+
end
|
14
32
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
33
|
+
define_method(k.to_s+'=') do |*args|
|
34
|
+
set_namaste v, *args
|
35
|
+
end
|
36
|
+
end
|
19
37
|
end
|
20
38
|
end
|
39
|
+
|
40
|
+
# Return the file contents of a Namaste given a filter and regexp
|
41
|
+
# @param [Hash] an arguments hash that accepts filter, extended, and regex arguments
|
42
|
+
# @return [String] the contents of the Namaste
|
43
|
+
def namaste args = {}
|
44
|
+
namaste_tags(args).map { |x| get_namaste x }
|
45
|
+
end
|
46
|
+
|
47
|
+
# @return [Hash] with the Dflat info broken out into its individual components of type, name, major, and minor.
|
48
|
+
def dirtype
|
49
|
+
namaste(:filter => :type).map do |nam|
|
50
|
+
matches = /([^_]+)[|\/](\d+)\.(\d+)/.match(nam[:value])
|
51
|
+
{ :type => nam[:value], :name => matches[1], :major => matches[2], :minor => matches[3] } if matches
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
21
56
|
|
57
|
+
# Get an array of namaste tags that match the filter and regex provided.
|
58
|
+
# @param [Hash] an arguments hash that accepts filter, extended, and regex arguments
|
59
|
+
# @return [Array] an array of Namaste tags
|
22
60
|
def namaste_tags args = {}
|
23
|
-
tags = []
|
24
61
|
rgx = nil
|
25
62
|
|
26
63
|
if args[:filter]
|
27
|
-
|
64
|
+
if Namaste::PATTERN.key? args[:filter].to_sym
|
28
65
|
rgx = Namaste::PATTERN[args[:filter].to_sym]
|
29
|
-
|
66
|
+
else
|
30
67
|
rgx = Regexp.new("^#{args[:filter]}=.*")
|
31
|
-
|
68
|
+
end
|
32
69
|
else
|
33
70
|
rgx = Namaste::PATTERN_CORE
|
34
71
|
rgx = Regexp(rgx, Namaste::PATTERN_EXTENDED) if args[:extended]
|
@@ -36,21 +73,9 @@ module Namaste
|
|
36
73
|
|
37
74
|
rgx = args[:regex] if args[:regex]
|
38
75
|
|
39
|
-
|
76
|
+
self.select { |x| x =~ rgx }
|
40
77
|
end
|
41
|
-
|
42
|
-
def namaste args = {}
|
43
|
-
namaste_tags(args).map { |x| get_namaste x }
|
44
|
-
end
|
45
|
-
|
46
|
-
def dirtype
|
47
|
-
namaste(:filter => :type).map do |nam|
|
48
|
-
matches = /([^_]+)_(\d+)\.(\d+)/.match(nam[:value])
|
49
|
-
{ :type => nam[:value], :name => matches[1], :major => matches[2], :minor => matches[3] } if matches
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
private
|
78
|
+
|
54
79
|
def set_namaste tag, value
|
55
80
|
File.open(File.join(self.path, make_namaste(tag, value)), 'w') do |f|
|
56
81
|
f.write(value)
|
@@ -81,6 +106,7 @@ module Namaste
|
|
81
106
|
end
|
82
107
|
|
83
108
|
class Dir < ::Dir
|
84
|
-
|
109
|
+
include Namaste::Mixin
|
85
110
|
end
|
111
|
+
|
86
112
|
end
|
data/namaste.gemspec
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "namaste/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "namaste"
|
7
|
+
s.version = Namaste::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Chris Beer"]
|
10
|
+
s.email = %q{chris@cbeer.info}
|
11
|
+
s.homepage = "http://github.com/microservices/namaste"
|
12
|
+
s.summary = %q{A ruby client implementation of the Namaste specification for directory description with filename-based tags.}
|
13
|
+
s.description = %q{A ruby client implementation of the Namaste specification for directory description with filename-based tags. [https://wiki.ucop.edu/display/Curation/Namaste]}
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.default_executable = %q{namaste}
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
22
|
+
|
23
|
+
s.licenses = ["Apache2"]
|
24
|
+
|
25
|
+
s.rubygems_version = %q{1.3.7}
|
26
|
+
|
27
|
+
s.add_dependency("i18n")
|
28
|
+
s.add_development_dependency("rake")
|
29
|
+
s.add_development_dependency("rcov")
|
30
|
+
s.add_development_dependency("bundler", "~>1.0.0")
|
31
|
+
s.add_development_dependency("rspec", ">2.0.0")
|
32
|
+
s.add_development_dependency("yard")
|
33
|
+
s.add_development_dependency("RedCloth")
|
34
|
+
|
35
|
+
end
|
36
|
+
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
class TestNamasteSurrogate
|
4
|
+
include Namaste::Mixin
|
5
|
+
|
6
|
+
def test_make_namaste tag, value
|
7
|
+
make_namaste tag, value
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
describe Namaste do
|
12
|
+
before(:all) do
|
13
|
+
@namaste = TestNamasteSurrogate.new
|
14
|
+
end
|
15
|
+
describe "make_namaste" do
|
16
|
+
it "should handle a simple value" do
|
17
|
+
@namaste.test_make_namaste(0, 'abcdef').should == "0=abcdef"
|
18
|
+
end
|
19
|
+
it "should properly handle dflat" do
|
20
|
+
@namaste.test_make_namaste(0, 'Dflat/0.19').should == "0=dflat_0.19"
|
21
|
+
end
|
22
|
+
it "should handle compled values correctly" do
|
23
|
+
@namaste.test_make_namaste(0, 'rQ@f2!éüAsd!').should == "0=rq_f2_euasd_"
|
24
|
+
end
|
25
|
+
it "should handle extended integers correctly" do
|
26
|
+
@namaste.test_make_namaste('x_123', 'extended').should == "x_123=extended"
|
27
|
+
end
|
28
|
+
it "should truncate file name at 255 characters" do
|
29
|
+
namaste = @namaste.test_make_namaste(0, 'lfvtshfasfogfzjgqokuwicivlnyluqlgfcsfmhtdbmrizvzqkiyaxqtlclkgxpgkmxtwwylepsorbdnddgrdgzpcyojqbwuxkqkfzmfbkxrfpaaymgygbpjgqxyklkfblqekgtrpdxvjsmodvkrlwcfrqswdknngervsjivehotqeiowigfpwymunrccgjhakdwpugwwtpqcpkwqvwlhcqccwqovlwaldwfuoalscdvzccgnpooedbrnttzmno')
|
30
|
+
namaste.length.should == 255
|
31
|
+
namaste.should == '0=lfvtshfasfogfzjgqokuwicivlnyluqlgfcsfmhtdbmrizvzqkiyaxqtlclkgxpgkmxtwwylepsorbdnddgrdgzpcyojqbwuxkqkfzmfbkxrfpaaymgygbpjgqxyklkfblqekgtrpdxvjsmodvkrlwcfrqswdknngervsjivehotqeiowigfpwymunrccgjhakdwpugwwtpqcpkwqvwlhcqccwqovlwaldwfuoalscdvzccgnpooedbrnt...'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "object instantiation" do
|
36
|
+
it "should define the appropriate setters and getters" do
|
37
|
+
d = Dir.mktmpdir
|
38
|
+
dir = Namaste::Dir.new(d)
|
39
|
+
dir.respond_to?(:type).should be_true
|
40
|
+
dir.respond_to?(:type=).should be_true
|
41
|
+
dir.respond_to?(:who).should be_true
|
42
|
+
dir.respond_to?(:who=).should be_true
|
43
|
+
dir.respond_to?(:what).should be_true
|
44
|
+
dir.respond_to?(:what=).should be_true
|
45
|
+
dir.respond_to?(:when).should be_true
|
46
|
+
dir.respond_to?(:when=).should be_true
|
47
|
+
dir.respond_to?(:where).should be_true
|
48
|
+
dir.respond_to?(:where=).should be_true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
describe "namaste_tags" do
|
52
|
+
it "should handle normal filters correclty" do
|
53
|
+
Dir.mktmpdir do |d|
|
54
|
+
dir = Namaste::Dir.new(d)
|
55
|
+
File.open(File.join(dir.path,"1=last,first"),"w") do |f|
|
56
|
+
f.write("Last,First")
|
57
|
+
end
|
58
|
+
dir.send(:namaste_tags,{:filter=>"1"}).include?("1=last,first").should be_true
|
59
|
+
end
|
60
|
+
end
|
61
|
+
it "should take regular expressions correctly" do
|
62
|
+
Dir.mktmpdir do |d|
|
63
|
+
dir = Namaste::Dir.new(d)
|
64
|
+
File.open(File.join(dir.path,"1=last,first"),"w") do |f|
|
65
|
+
f.write("Last,First")
|
66
|
+
end
|
67
|
+
dir.send(:namaste_tags,{:regex=>/last,first/}).include?("1=last,first").should be_true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
it "should take a number as a regexp and handle it correclty" do
|
71
|
+
Dir.mktmpdir do |d|
|
72
|
+
dir = Namaste::Dir.new(d)
|
73
|
+
File.open(File.join(dir.path,"1=last,first"),"w") do |f|
|
74
|
+
f.write("Last,First")
|
75
|
+
end
|
76
|
+
dir.send(:namaste_tags,{:filter=>:who}).include?("1=last,first").should be_true
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "get_namaste" do
|
82
|
+
it "should reterive the appriprate tag" do
|
83
|
+
Dir.mktmpdir do |d|
|
84
|
+
dir = Namaste::Dir.new(d)
|
85
|
+
File.open(File.join(dir.path,"1=last,first"),"w") do |f|
|
86
|
+
f.write("Last,First")
|
87
|
+
end
|
88
|
+
data = dir.send(:get_namaste,"1=last,first")
|
89
|
+
data.has_key?(:value).should be_true and
|
90
|
+
data[:value].should == "Last,First"
|
91
|
+
|
92
|
+
data.has_key?(:file).should be_true and
|
93
|
+
data[:file].should == "1=last,first"
|
94
|
+
|
95
|
+
data.has_key?(:name).should be_true and
|
96
|
+
data[:name].should == "1"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe "dirtype" do
|
102
|
+
it "should parse out the Dflat type properly" do
|
103
|
+
Dir.mktmpdir do |d|
|
104
|
+
dir = Namaste::Dir.new(d)
|
105
|
+
File.open(File.join(dir.path,"0=dflat_0.19"),"w") do |f|
|
106
|
+
f.write("Dflat/0.19")
|
107
|
+
end
|
108
|
+
dir.dirtype.length == 1
|
109
|
+
|
110
|
+
dir.dirtype.first.has_key?(:name).should be_true and
|
111
|
+
dir.dirtype.first[:name].should == "Dflat"
|
112
|
+
|
113
|
+
dir.dirtype.first.has_key?(:minor).should be_true and
|
114
|
+
dir.dirtype.first[:minor].should == "19"
|
115
|
+
|
116
|
+
dir.dirtype.first.has_key?(:type).should be_true and
|
117
|
+
dir.dirtype.first[:type].should == "Dflat/0.19"
|
118
|
+
|
119
|
+
dir.dirtype.first.has_key?(:major).should be_true and
|
120
|
+
dir.dirtype.first[:major].should == "0"
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: namaste
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Chris Beer
|
@@ -15,14 +15,13 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-06-09 00:00:00 -05:00
|
19
19
|
default_executable: namaste
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
22
|
name: i18n
|
25
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
25
|
none: false
|
27
26
|
requirements:
|
28
27
|
- - ">="
|
@@ -31,12 +30,12 @@ dependencies:
|
|
31
30
|
segments:
|
32
31
|
- 0
|
33
32
|
version: "0"
|
34
|
-
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
|
36
|
+
name: rake
|
37
37
|
prerelease: false
|
38
|
-
|
39
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ">="
|
@@ -45,12 +44,26 @@ dependencies:
|
|
45
44
|
segments:
|
46
45
|
- 0
|
47
46
|
version: "0"
|
48
|
-
requirement: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
47
|
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: rcov
|
51
51
|
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
52
64
|
name: bundler
|
53
|
-
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
54
67
|
none: false
|
55
68
|
requirements:
|
56
69
|
- - ~>
|
@@ -61,28 +74,42 @@ dependencies:
|
|
61
74
|
- 0
|
62
75
|
- 0
|
63
76
|
version: 1.0.0
|
64
|
-
requirement: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
77
|
type: :development
|
78
|
+
version_requirements: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: rspec
|
67
81
|
prerelease: false
|
68
|
-
|
69
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
70
83
|
none: false
|
71
84
|
requirements:
|
72
|
-
- -
|
85
|
+
- - ">"
|
73
86
|
- !ruby/object:Gem::Version
|
74
|
-
hash:
|
87
|
+
hash: 15
|
75
88
|
segments:
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
version:
|
80
|
-
|
89
|
+
- 2
|
90
|
+
- 0
|
91
|
+
- 0
|
92
|
+
version: 2.0.0
|
93
|
+
type: :development
|
94
|
+
version_requirements: *id005
|
81
95
|
- !ruby/object:Gem::Dependency
|
96
|
+
name: yard
|
97
|
+
prerelease: false
|
98
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
hash: 3
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
version: "0"
|
82
107
|
type: :development
|
108
|
+
version_requirements: *id006
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: RedCloth
|
83
111
|
prerelease: false
|
84
|
-
|
85
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
112
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
86
113
|
none: false
|
87
114
|
requirements:
|
88
115
|
- - ">="
|
@@ -91,32 +118,33 @@ dependencies:
|
|
91
118
|
segments:
|
92
119
|
- 0
|
93
120
|
version: "0"
|
94
|
-
|
95
|
-
|
121
|
+
type: :development
|
122
|
+
version_requirements: *id007
|
123
|
+
description: A ruby client implementation of the Namaste specification for directory description with filename-based tags. [https://wiki.ucop.edu/display/Curation/Namaste]
|
96
124
|
email: chris@cbeer.info
|
97
125
|
executables:
|
98
126
|
- namaste
|
99
127
|
extensions: []
|
100
128
|
|
101
|
-
extra_rdoc_files:
|
102
|
-
|
103
|
-
- README.rdoc
|
129
|
+
extra_rdoc_files: []
|
130
|
+
|
104
131
|
files:
|
105
132
|
- .document
|
133
|
+
- .gitignore
|
106
134
|
- Gemfile
|
107
|
-
- Gemfile.lock
|
108
135
|
- LICENSE.txt
|
109
|
-
- README.
|
136
|
+
- README.textile
|
110
137
|
- Rakefile
|
111
|
-
- VERSION
|
112
138
|
- bin/namaste
|
113
139
|
- lib/namaste.rb
|
114
|
-
-
|
115
|
-
-
|
140
|
+
- lib/namaste/version.rb
|
141
|
+
- namaste.gemspec
|
142
|
+
- spec/lib/namaste_spec.rb
|
143
|
+
- spec/spec_helper.rb
|
116
144
|
has_rdoc: true
|
117
|
-
homepage: http://github.com/
|
145
|
+
homepage: http://github.com/microservices/namaste
|
118
146
|
licenses:
|
119
|
-
-
|
147
|
+
- Apache2
|
120
148
|
post_install_message:
|
121
149
|
rdoc_options: []
|
122
150
|
|
@@ -143,10 +171,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
171
|
requirements: []
|
144
172
|
|
145
173
|
rubyforge_project:
|
146
|
-
rubygems_version: 1.
|
174
|
+
rubygems_version: 1.6.2
|
147
175
|
signing_key:
|
148
176
|
specification_version: 3
|
149
177
|
summary: A ruby client implementation of the Namaste specification for directory description with filename-based tags.
|
150
178
|
test_files:
|
151
|
-
-
|
152
|
-
-
|
179
|
+
- spec/lib/namaste_spec.rb
|
180
|
+
- spec/spec_helper.rb
|
data/Gemfile.lock
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
git (1.2.5)
|
5
|
-
i18n (0.4.1)
|
6
|
-
jeweler (1.5.1)
|
7
|
-
bundler (~> 1.0.0)
|
8
|
-
git (>= 1.2.5)
|
9
|
-
rake
|
10
|
-
rake (0.8.7)
|
11
|
-
rcov (0.9.9)
|
12
|
-
shoulda (2.11.3)
|
13
|
-
|
14
|
-
PLATFORMS
|
15
|
-
ruby
|
16
|
-
|
17
|
-
DEPENDENCIES
|
18
|
-
bundler (~> 1.0.0)
|
19
|
-
i18n
|
20
|
-
jeweler (~> 1.5.1)
|
21
|
-
rcov
|
22
|
-
shoulda
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.0
|
data/test/helper.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
|
-
require 'test/unit'
|
11
|
-
require 'shoulda'
|
12
|
-
|
13
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
-
require 'namaste'
|
16
|
-
|
17
|
-
class Test::Unit::TestCase
|
18
|
-
end
|
data/test/test_namaste.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TestNamasteSurrogate
|
4
|
-
include Namaste::Mixin
|
5
|
-
|
6
|
-
def test_make_namaste tag, value
|
7
|
-
make_namaste tag, value
|
8
|
-
end
|
9
|
-
end
|
10
|
-
class TestNamaste < Test::Unit::TestCase
|
11
|
-
def test_make_simple
|
12
|
-
t = TestNamasteSurrogate.new
|
13
|
-
assert_equal(t.test_make_namaste(0, 'abcdef'), '0=abcdef')
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_make_dflat
|
17
|
-
t = TestNamasteSurrogate.new
|
18
|
-
assert_equal(t.test_make_namaste(0, 'Dflat/0.19'), '0=dflat_0.19')
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_make_complex
|
22
|
-
t = TestNamasteSurrogate.new
|
23
|
-
assert_equal(t.test_make_namaste(0, 'rQ@f2!éüAsd!'), '0=rq_f2_euasd_')
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_make_extended
|
27
|
-
t = TestNamasteSurrogate.new
|
28
|
-
assert_equal(t.test_make_namaste('x_123', 'extended'), 'x_123=extended')
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_truncate
|
32
|
-
t = TestNamasteSurrogate.new
|
33
|
-
assert_equal(t.test_make_namaste(0, 'lfvtshfasfogfzjgqokuwicivlnyluqlgfcsfmhtdbmrizvzqkiyaxqtlclkgxpgkmxtwwylepsorbdnddgrdgzpcyojqbwuxkqkfzmfbkxrfpaaymgygbpjgqxyklkfblqekgtrpdxvjsmodvkrlwcfrqswdknngervsjivehotqeiowigfpwymunrccgjhakdwpugwwtpqcpkwqvwlhcqccwqovlwaldwfuoalscdvzccgnpooedbrnttzmno'), '0=lfvtshfasfogfzjgqokuwicivlnyluqlgfcsfmhtdbmrizvzqkiyaxqtlclkgxpgkmxtwwylepsorbdnddgrdgzpcyojqbwuxkqkfzmfbkxrfpaaymgygbpjgqxyklkfblqekgtrpdxvjsmodvkrlwcfrqswdknngervsjivehotqeiowigfpwymunrccgjhakdwpugwwtpqcpkwqvwlhcqccwqovlwaldwfuoalscdvzccgnpooedbrnt...')
|
34
|
-
end
|
35
|
-
end
|