Module: GitHandler::GitCommand
- Included in:
- Session
- Defined in:
- lib/git_handler/git_command.rb
Constant Summary collapse
- GIT_COMMAND =
/^(git-upload-pack|git upload-pack|git-upload-archive|git upload-archive|git-receive-pack|git receive-pack) '(.*)'$/- COMMANDS_READONLY =
[ 'git-upload-pack', 'git upload-pack', 'git-upload-archive', 'git upload-archive' ]
- COMMANDS_WRITE =
[ 'git-receive-pack', 'git receive-pack' ]
Instance Method Summary collapse
- #parse_command(cmd) ⇒ Object
- #read_command?(cmd) ⇒ Boolean
- #valid_command?(cmd) ⇒ Boolean
- #write_command?(cmd) ⇒ Boolean
Instance Method Details
#parse_command(cmd) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/git_handler/git_command.rb', line 17 def parse_command(cmd) unless valid_command?(cmd) raise ParseError, "Invalid command: #{cmd}" end match = cmd.scan(GIT_COMMAND).flatten action = match.first repo = match.last { :action => action, :repo => repo, :read => read_command?(action), :write => write_command?(action) } end |
#read_command?(cmd) ⇒ Boolean
38 39 40 |
# File 'lib/git_handler/git_command.rb', line 38 def read_command?(cmd) COMMANDS_READONLY.include?(cmd) end |
#valid_command?(cmd) ⇒ Boolean
34 35 36 |
# File 'lib/git_handler/git_command.rb', line 34 def valid_command?(cmd) cmd =~ GIT_COMMAND ? true : false end |
#write_command?(cmd) ⇒ Boolean
42 43 44 |
# File 'lib/git_handler/git_command.rb', line 42 def write_command?(cmd) COMMANDS_WRITE.include?(cmd) end |