moses 0.1.4 → 0.1.5
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/Gemfile +2 -0
- data/Gemfile.lock +6 -0
- data/HELP.md +10 -0
- data/README.md +191 -0
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/bin/moses +4 -0
- data/lib/moses/application.rb +88 -0
- data/moses.gemspec +14 -3
- data/moses.png +0 -0
- data/spec/application_spec.rb +91 -0
- metadata +28 -4
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
activesupport (3.2.13)
|
5
|
+
i18n (= 0.6.1)
|
6
|
+
multi_json (~> 1.0)
|
4
7
|
coderay (1.0.9)
|
5
8
|
diff-lcs (1.2.4)
|
6
9
|
git (1.2.5)
|
10
|
+
i18n (0.6.1)
|
7
11
|
jeweler (1.8.4)
|
8
12
|
bundler (~> 1.0)
|
9
13
|
git (>= 1.2.5)
|
@@ -11,6 +15,7 @@ GEM
|
|
11
15
|
rdoc
|
12
16
|
json (1.7.7)
|
13
17
|
method_source (0.8.1)
|
18
|
+
multi_json (1.7.3)
|
14
19
|
nyan-cat-formatter (0.5.0)
|
15
20
|
rspec (>= 2.13)
|
16
21
|
pry (0.9.12)
|
@@ -38,6 +43,7 @@ PLATFORMS
|
|
38
43
|
ruby
|
39
44
|
|
40
45
|
DEPENDENCIES
|
46
|
+
activesupport
|
41
47
|
bundler
|
42
48
|
jeweler
|
43
49
|
nyan-cat-formatter
|
data/HELP.md
ADDED
data/README.md
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
Moses
|
2
|
+
=====
|
3
|
+
Moses is a simple option/command parser for building command line applications in Ruby.
|
4
|
+

|
5
|
+
|
6
|
+
Getting Started
|
7
|
+
---------------
|
8
|
+
|
9
|
+
Installation with ruby-gems:
|
10
|
+
|
11
|
+
gem install moses
|
12
|
+
|
13
|
+
Installation with bundler:
|
14
|
+
|
15
|
+
gem 'moses', '0.1.5'
|
16
|
+
|
17
|
+
Creating a Moses application
|
18
|
+
----------------------------
|
19
|
+
|
20
|
+
Moses is a module that you can include into any Ruby class to provide all the plumbing you need to write command line applications. Create the following directory structure for your application
|
21
|
+
|
22
|
+
- bin
|
23
|
+
- myapp
|
24
|
+
- lib
|
25
|
+
- myapp.rb
|
26
|
+
- VERSION
|
27
|
+
- HELP.md (or just HELP)
|
28
|
+
|
29
|
+
Create a class for your applications functionality:
|
30
|
+
|
31
|
+
```rb
|
32
|
+
class MyApp
|
33
|
+
include Moses
|
34
|
+
commands :foo, :bar
|
35
|
+
|
36
|
+
def foo
|
37
|
+
# do stuff
|
38
|
+
end
|
39
|
+
|
40
|
+
def bar
|
41
|
+
# do stuff
|
42
|
+
end
|
43
|
+
end
|
44
|
+
```
|
45
|
+
|
46
|
+
Then all you need in your executable file is the following:
|
47
|
+
|
48
|
+
```rb
|
49
|
+
#!/usr/bin/env ruby
|
50
|
+
$: << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
|
51
|
+
require 'myapp'
|
52
|
+
MyApp.new.run
|
53
|
+
```
|
54
|
+
|
55
|
+
That's all you need to create a CLI app. You can now call your application like so:
|
56
|
+
|
57
|
+
myapp foo
|
58
|
+
myapp bar
|
59
|
+
|
60
|
+
By default, Moses will read the contents of the HELP.md (or HELP) file in the root of your project. This will be used to display your application instructions when passed the flags `-h` and `--help`
|
61
|
+
|
62
|
+
myapp -h
|
63
|
+
myapp --help
|
64
|
+
|
65
|
+
Similarly, Moses will use the VERSION file with the `-v` and `--version` flags.
|
66
|
+
|
67
|
+
myapp -v
|
68
|
+
myapp --version
|
69
|
+
|
70
|
+
You may choose not to use `VERSION` or `HELP` files in your project and simply define corresponding methods that output what you want:
|
71
|
+
|
72
|
+
```rb
|
73
|
+
def help
|
74
|
+
output.puts "This is my help text"
|
75
|
+
end
|
76
|
+
|
77
|
+
def version
|
78
|
+
output.puts "X.X.X"
|
79
|
+
end
|
80
|
+
```
|
81
|
+
|
82
|
+
Commands
|
83
|
+
--------
|
84
|
+
|
85
|
+
Moses treats the first non-flag argument passed to it as a command (sometimes referred to as sub-commands). A command is simply a method defined in your application class. To define a command, simply add a command definition to your class and implement a method of the same name:
|
86
|
+
|
87
|
+
```rb
|
88
|
+
class MyApp
|
89
|
+
include Moses
|
90
|
+
commands :foo
|
91
|
+
|
92
|
+
def foo
|
93
|
+
# do stuff
|
94
|
+
end
|
95
|
+
end
|
96
|
+
```
|
97
|
+
|
98
|
+
This will create a `foo` command that can be called from the command line: `myapp foo`
|
99
|
+
|
100
|
+
### Default command
|
101
|
+
|
102
|
+
Sometimes you will want to create an application that has no "sub-commands" and will simply be called from the command line with options. To run a command by default, add a default_command definition to your class:
|
103
|
+
|
104
|
+
```rb
|
105
|
+
class MyApp
|
106
|
+
include Moses
|
107
|
+
default_command :main
|
108
|
+
|
109
|
+
def main
|
110
|
+
# do stuff
|
111
|
+
end
|
112
|
+
end
|
113
|
+
```
|
114
|
+
|
115
|
+
In the above example, the `main` method will execute whenever your application is run. Simply calling `myapp` from the command line will execute the `main` method.
|
116
|
+
|
117
|
+
|
118
|
+
Options
|
119
|
+
-------
|
120
|
+
|
121
|
+
Moses will parse any flags passed to your application that begin with one or two dashes. There are two basic types of flags, boolean and variable flags.
|
122
|
+
|
123
|
+
### Boolean flags
|
124
|
+
|
125
|
+
Flags which begin with one dash are treated as boolean flags. A boolean flag is basically an _ON_ switch:
|
126
|
+
|
127
|
+
myapp -x
|
128
|
+
|
129
|
+
The above will create an `:x` key in the `@options` hash that is true. Given the above switch, we could write code to handle that switch like so:
|
130
|
+
|
131
|
+
```rb
|
132
|
+
if @options[:x]
|
133
|
+
# stuff here
|
134
|
+
end
|
135
|
+
```
|
136
|
+
|
137
|
+
### Variable flags
|
138
|
+
|
139
|
+
Flags which begin with two dashes are slightly trickier than boolean flags. Variable flags can be either boolean or be passed a value. Variable flags will be treated as a boolean if no arguments are passed after them:
|
140
|
+
|
141
|
+
myapp --foo
|
142
|
+
|
143
|
+
In the above example the value of `@options[:foo]` will be true. However if an argument is passed after the flag, it will automatically be assigned as the value:
|
144
|
+
|
145
|
+
myapp --foo bar
|
146
|
+
|
147
|
+
In this case the value of `@options[:foo]` will be the string `bar`. The flag can still be treated as a boolean but it's adjacent argument can also be accessed as it's value:
|
148
|
+
|
149
|
+
```rb
|
150
|
+
if @options[:foo]
|
151
|
+
x = @options[:foo] # bar
|
152
|
+
end
|
153
|
+
```
|
154
|
+
|
155
|
+
### Option commands
|
156
|
+
|
157
|
+
It's common to run a command as the result of an option being passed (ie. `-h` or `--help`). To run a command automatically when an option is passed, simply add an `option_commands` definition to your class:
|
158
|
+
|
159
|
+
```rb
|
160
|
+
class MyApp
|
161
|
+
include Moses
|
162
|
+
option_commands({ :auto => :run_automatic })
|
163
|
+
|
164
|
+
def run_automatic
|
165
|
+
# automatically runs when --auto is passed
|
166
|
+
end
|
167
|
+
end
|
168
|
+
```
|
169
|
+
|
170
|
+
_Note: When using `option_commands`, no other command will be run. If you wish to execute multiple commands based on an option, simply use the boolean flag._
|
171
|
+
|
172
|
+
Output
|
173
|
+
------
|
174
|
+
|
175
|
+
By default Moses exposes `$stdout` through an `output` method. To output to the terminal, simply use `output.puts`:
|
176
|
+
|
177
|
+
```rb
|
178
|
+
output.puts "This will be output to STDOUT"
|
179
|
+
```
|
180
|
+
|
181
|
+
To substitute your own output, define an initializer that overwrites the `@output` variable:
|
182
|
+
|
183
|
+
```rb
|
184
|
+
class MyApp
|
185
|
+
def initialize(output)
|
186
|
+
@output = output
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
MyApp.new(File.open('output.txt'))
|
191
|
+
```
|
data/Rakefile
CHANGED
@@ -21,6 +21,7 @@ Jeweler::Tasks.new do |gem|
|
|
21
21
|
gem.description = %Q{Moses is a simple command parser for writing command line applications}
|
22
22
|
gem.email = "daytonn@gmail.com"
|
23
23
|
gem.authors = ["Dayton Nolan"]
|
24
|
+
gem.executables = ["moses"]
|
24
25
|
# dependencies defined in Gemfile
|
25
26
|
end
|
26
27
|
Jeweler::RubygemsDotOrgTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
data/bin/moses
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'moses'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'active_support/inflector'
|
4
|
+
|
5
|
+
class Moses::Application
|
6
|
+
include Moses
|
7
|
+
commands :create
|
8
|
+
attr_reader :root_path
|
9
|
+
|
10
|
+
def initialize(root_path = Dir.getwd)
|
11
|
+
@root_path = root_path
|
12
|
+
end
|
13
|
+
|
14
|
+
def create
|
15
|
+
if @args.first
|
16
|
+
@app_name = @args.first
|
17
|
+
create_app_dir
|
18
|
+
create_help_file
|
19
|
+
create_version_file
|
20
|
+
create_bin_dir
|
21
|
+
create_bin_file
|
22
|
+
create_lib_dir
|
23
|
+
create_application_class
|
24
|
+
else
|
25
|
+
output.puts "You need to name your application: moses create myapp"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def create_app_dir
|
32
|
+
FileUtils.mkdir("#{@root_path}/#{@app_name}") unless File.directory?("#{@root_path}/#{@app_name}")
|
33
|
+
end
|
34
|
+
|
35
|
+
def create_help_file
|
36
|
+
unless File.file?("#{@root_path}/#{@app_name}/HELP.md")
|
37
|
+
FileUtils.touch("#{@root_path}/#{@app_name}/HELP.md")
|
38
|
+
File.open("#{@root_path}/#{@app_name}/HELP.md", 'w+') do |f|
|
39
|
+
f << "Todo: Add your own instructions"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def create_version_file
|
45
|
+
unless File.file?("#{@root_path}/#{@app_name}/VERSION")
|
46
|
+
FileUtils.touch("#{@root_path}/#{@app_name}/VERSION")
|
47
|
+
File.open("#{@root_path}/#{@app_name}/VERSION", 'w+') do |f|
|
48
|
+
f << "0.0.0"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def create_bin_dir
|
54
|
+
FileUtils.mkdir("#{@root_path}/#{@app_name}/bin") unless File.directory?("#{@root_path}/#{@app_name}/bin")
|
55
|
+
end
|
56
|
+
|
57
|
+
def create_bin_file
|
58
|
+
unless File.file?("#{@root_path}/#{@app_name}/bin/#{@app_name}")
|
59
|
+
FileUtils.touch("#{@root_path}/#{@app_name}/bin/#{@app_name}")
|
60
|
+
FileUtils.chmod("u+x", "#{@root_path}/#{@app_name}/bin/#{@app_name}")
|
61
|
+
File.open("#{@root_path}/#{@app_name}/bin/#{@app_name}", 'w+') do |f|
|
62
|
+
f << %Q{
|
63
|
+
#!/usr/bin/env ruby
|
64
|
+
$: << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
|
65
|
+
require '#{@app_name}'
|
66
|
+
#{@app_name.camelize}.new.run
|
67
|
+
}
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def create_lib_dir
|
73
|
+
FileUtils.mkdir("#{@root_path}/#{@app_name}/lib") unless File.directory?("#{@root_path}/#{@app_name}/lib")
|
74
|
+
end
|
75
|
+
|
76
|
+
def create_application_class
|
77
|
+
unless File.file?("#{@root_path}/#{@app_name}/lib/#{@app_name}.rb")
|
78
|
+
FileUtils.touch("#{@root_path}/#{@app_name}/lib/#{@app_name}.rb")
|
79
|
+
File.open("#{@root_path}/#{@app_name}/lib/#{@app_name}.rb", 'w+') do |f|
|
80
|
+
f << %Q{
|
81
|
+
class #{@app_name.camelize}
|
82
|
+
include Moses
|
83
|
+
end
|
84
|
+
}
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/moses.gemspec
CHANGED
@@ -5,15 +5,17 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "moses"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dayton Nolan"]
|
12
|
-
s.date = "2013-05-
|
12
|
+
s.date = "2013-05-14"
|
13
13
|
s.description = "Moses is a simple command parser for writing command line applications"
|
14
14
|
s.email = "daytonn@gmail.com"
|
15
|
+
s.executables = ["moses"]
|
15
16
|
s.extra_rdoc_files = [
|
16
|
-
"LICENSE"
|
17
|
+
"LICENSE",
|
18
|
+
"README.md"
|
17
19
|
]
|
18
20
|
s.files = [
|
19
21
|
".DS_Store",
|
@@ -22,11 +24,17 @@ Gem::Specification.new do |s|
|
|
22
24
|
".ruby-version",
|
23
25
|
"Gemfile",
|
24
26
|
"Gemfile.lock",
|
27
|
+
"HELP.md",
|
25
28
|
"LICENSE",
|
29
|
+
"README.md",
|
26
30
|
"Rakefile",
|
27
31
|
"VERSION",
|
32
|
+
"bin/moses",
|
28
33
|
"lib/moses.rb",
|
34
|
+
"lib/moses/application.rb",
|
29
35
|
"moses.gemspec",
|
36
|
+
"moses.png",
|
37
|
+
"spec/application_spec.rb",
|
30
38
|
"spec/moses_spec.rb",
|
31
39
|
"spec/spec_helper.rb",
|
32
40
|
"test.rb"
|
@@ -41,12 +49,14 @@ Gem::Specification.new do |s|
|
|
41
49
|
s.specification_version = 3
|
42
50
|
|
43
51
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
52
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
44
53
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
45
54
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
46
55
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
47
56
|
s.add_development_dependency(%q<pry>, [">= 0"])
|
48
57
|
s.add_development_dependency(%q<pry-nav>, [">= 0"])
|
49
58
|
else
|
59
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
50
60
|
s.add_dependency(%q<rspec>, [">= 0"])
|
51
61
|
s.add_dependency(%q<bundler>, [">= 0"])
|
52
62
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
@@ -54,6 +64,7 @@ Gem::Specification.new do |s|
|
|
54
64
|
s.add_dependency(%q<pry-nav>, [">= 0"])
|
55
65
|
end
|
56
66
|
else
|
67
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
57
68
|
s.add_dependency(%q<rspec>, [">= 0"])
|
58
69
|
s.add_dependency(%q<bundler>, [">= 0"])
|
59
70
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
data/moses.png
ADDED
Binary file
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require 'moses/application'
|
3
|
+
require 'pry'
|
4
|
+
|
5
|
+
describe Moses::Application do
|
6
|
+
|
7
|
+
describe "create" do
|
8
|
+
|
9
|
+
before do
|
10
|
+
@bin = File.expand_path(File.join("bin", "moses"))
|
11
|
+
@tmp_dir = Dir.mktmpdir
|
12
|
+
@app = Moses::Application.new @tmp_dir
|
13
|
+
end
|
14
|
+
|
15
|
+
after do
|
16
|
+
FileUtils.rm_rf @tmp_dir
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "initialization" do
|
20
|
+
it "has default root_path" do
|
21
|
+
app = Moses::Application.new
|
22
|
+
expect(app.root_path).to eq(File.dirname(File.expand_path('..', __FILE__)))
|
23
|
+
end
|
24
|
+
|
25
|
+
it "can be initialized with a root_path" do
|
26
|
+
expect(@app.root_path).to eq(@tmp_dir)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "create" do
|
31
|
+
before do
|
32
|
+
@app.instance_variable_set(:@args, ['test_app'])
|
33
|
+
@app.create
|
34
|
+
end
|
35
|
+
|
36
|
+
it "makes a directory for the application" do
|
37
|
+
expect(File.directory?("#{@tmp_dir}/test_app")).to be_true
|
38
|
+
end
|
39
|
+
|
40
|
+
it "makes a HELP file" do
|
41
|
+
expect(File.file?("#{@tmp_dir}/test_app/HELP.md")).to be_true
|
42
|
+
expect(File.read("#{@tmp_dir}/test_app/HELP.md")).to eq("Todo: Add your own instructions")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "makes a version file" do
|
46
|
+
expect(File.file?("#{@tmp_dir}/test_app/VERSION")).to be_true
|
47
|
+
expect(File.read("#{@tmp_dir}/test_app/VERSION")).to eq("0.0.0")
|
48
|
+
end
|
49
|
+
|
50
|
+
it "makes a bin directory" do
|
51
|
+
expect(File.directory?("#{@tmp_dir}/test_app/bin")).to be_true
|
52
|
+
end
|
53
|
+
|
54
|
+
it "makes an executable file" do
|
55
|
+
expect(File.file?("#{@tmp_dir}/test_app/bin/test_app")).to be_true
|
56
|
+
expect(File.executable?("#{@tmp_dir}/test_app/bin/test_app")).to be_true
|
57
|
+
expected_content = %Q{
|
58
|
+
#!/usr/bin/env ruby
|
59
|
+
$: << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
|
60
|
+
require 'test_app'
|
61
|
+
TestApp.new.run
|
62
|
+
}
|
63
|
+
expect(File.read("#{@tmp_dir}/test_app/bin/test_app")).to eq(expected_content)
|
64
|
+
end
|
65
|
+
|
66
|
+
it "makes a lib directory" do
|
67
|
+
expect(File.directory?("#{@tmp_dir}/test_app/lib")).to be_true
|
68
|
+
end
|
69
|
+
|
70
|
+
it "makes an applcation class file" do
|
71
|
+
expect(File.file?("#{@tmp_dir}/test_app/lib/test_app.rb")).to be_true
|
72
|
+
expected_content = %Q{
|
73
|
+
class TestApp
|
74
|
+
include Moses
|
75
|
+
end
|
76
|
+
}
|
77
|
+
expect(File.read("#{@tmp_dir}/test_app/lib/test_app.rb")).to eq(expected_content)
|
78
|
+
end
|
79
|
+
|
80
|
+
it "warns you if you forget the app name" do
|
81
|
+
app = Moses::Application.new
|
82
|
+
app.instance_variable_set(:@args, [])
|
83
|
+
app.output.stub(:puts)
|
84
|
+
app.output.should_receive(:puts).with('You need to name your application: moses create myapp')
|
85
|
+
app.create
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moses
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,24 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activesupport
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
14
30
|
- !ruby/object:Gem::Dependency
|
15
31
|
name: rspec
|
16
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,10 +109,12 @@ dependencies:
|
|
93
109
|
version: '0'
|
94
110
|
description: Moses is a simple command parser for writing command line applications
|
95
111
|
email: daytonn@gmail.com
|
96
|
-
executables:
|
112
|
+
executables:
|
113
|
+
- moses
|
97
114
|
extensions: []
|
98
115
|
extra_rdoc_files:
|
99
116
|
- LICENSE
|
117
|
+
- README.md
|
100
118
|
files:
|
101
119
|
- .DS_Store
|
102
120
|
- .document
|
@@ -104,11 +122,17 @@ files:
|
|
104
122
|
- .ruby-version
|
105
123
|
- Gemfile
|
106
124
|
- Gemfile.lock
|
125
|
+
- HELP.md
|
107
126
|
- LICENSE
|
127
|
+
- README.md
|
108
128
|
- Rakefile
|
109
129
|
- VERSION
|
130
|
+
- bin/moses
|
110
131
|
- lib/moses.rb
|
132
|
+
- lib/moses/application.rb
|
111
133
|
- moses.gemspec
|
134
|
+
- moses.png
|
135
|
+
- spec/application_spec.rb
|
112
136
|
- spec/moses_spec.rb
|
113
137
|
- spec/spec_helper.rb
|
114
138
|
- test.rb
|
@@ -127,7 +151,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
151
|
version: '0'
|
128
152
|
segments:
|
129
153
|
- 0
|
130
|
-
hash:
|
154
|
+
hash: 4282325133328940449
|
131
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
156
|
none: false
|
133
157
|
requirements:
|