I think it'd be cleaner to have a method that individual classes can override, something like `managing_content?`. On the file provider:

```
def managing_content?
  @action != :create_if_missing or !content.nil?
end
```

On the directory provider

```
def managing_content?
  false
end
```

On (e.g.) the remote file provider

```
def managing_content?
  @action != :create_if_missing
end
```

Then your `should_checksum?` method is like:

```
  new_resource.enable_checksum && managing_content?
```

Or something like that.